Есть сервер под FreeBSD 8.2 x86_64, ксеон E5606, 8 Гб ОЗУ, аппаратный RAID (2x250 Gb в зеркале).
На мой взгляд, железо вполне пристойное.
Установлен Apache 2.2, MySQL 5, PHP 5 (как модуль Apache).
Поставлен Drupal 6.22 и довольно большое число модулей (Administration menu 6.x-1.8, Advanced help 6.x-1.2, cck 6.x-2.9, chart 6.x-1.3, chatroom 6.x-2.18, ckeditor 6.x-1.6, email 6.x-1.2, faq 6.x-1.12, filefield 6.x-3.10, gallery 6.x-1.0, google_analytics 6.x-3.3, image 6.x-1.1, imageapi 6.x-1.10, imagecache 6.x-2.0-beta12, imagefield 6.x-3.10, lightbox2 6.x-1.11, link 6.x-2.9, live_translation 6.x-1.03, token 6.x-1.16, ubercart 6.x-2.7, unique_field 6.x-1.4, views 6.x-2.12, webform 6.x-3.14, webform_validation 6.x-1.4). Сайт должен выполнять роль портала во внутренней 100-мбитной сети. И соответственно, работать довольно быстро. Но он довольно ощутимо тормозит, страницы открываются по 3, 5, иногда по 10 секунд.
Как найти, что является причиной тормозов? Скрипты, сеть, что-то еще?
Если зайти на сервер и открывать страницы с сервера (через links), они открываются значительно быстрее, но тут трудно сказать, в чем причина, возможно разница в скорости из-за того, что текстовый браузер не загружает изображения и стили.
Если дело в скриптах, то как их можно ускорить (увеличить лимиты на PHP, использовать mem_cached)? Если дело в сети (что сомнительно, статический контент качается с сервера на скорости до 70-80 Мбит/с), то оптимизировать стек TCP?
Комментарии
Поставьте модуль devel, он умеет показывать время генерации страниц.
так может сеть не подключена к интернету ,а google analytics коннектится в течении 10 сек.
Доступ в интернет у сервера есть. Google Analytics отключил, ничего не поменялось.
Модуль devel поставил. Субъективно ничего не изменелись, страницы загружаются по несколько секунд, однако время генерации страницы в среднем меньше секунды.
Т.е. с Drupal все нормально и узкое место надо искать в сетевых параметрах?
в мозилле в firebug есть вкладка "сеть" там видно какие элементы страницы ,сколько грузятся .
Начните с клиентской части - пройдитесь firebug'ом и yslow. Если время генерации страниц меньше секунды, а грузится страница долго - значит наверняка дело в теме. Тут yslow отлично поможет и даст рекомендации - уменьшить количество файлов стилей, спрайтовать графику...
есть еще расширение page speed от гугла тоже в firebug добавляется вкладка и анализируется скорость загрузки и выдает рекомендации о том что тормозит загрузку страницы и как исправить .
Произвел хронометраж с помощью Google Chrome (инструменты разработчика).
Получил такие результаты:
- тело страницы (text/html) - около 300-400 мс
- множество небольших скриптов и CSS от модулей Drupal - 0-1 мс (большинство из кеша)
- ресурс http://data/sites/portal/files/languages/ru_2a24c2b9cbbac39f4779355cbd4e... - 2.5 секунд (причем не загрузился)
Судя по всему, проблема в последнем пункте. Причем /data/sites/portal/files - это физический адрес папки на сервере, указанной как папка файловой системы Drupal. Откуда он взялся, мне непонятно.
Возможно из-за того, что я менял метод загрузки с публичного на приватный.
Если дело в этом, подскажите, как это починить?
Сбросьте кэш
Это файлы агрегации друпалом цсс и жс, у меня тоже были проблемы с этими файлами. Как-то решились, не помню уже как
Обратитесь к RxB, он вам поможет провести аудит и починит если надо.
Кеш я сбросил первым делом, это не помогло.
Пробовал также выключить/включить кеширование, тоже без результата.
Похоже, что проблема достаточно распространенная:
http://www.google.com/search?q=drupal+files%2Flanguages%2Fru
Тут вроде бы выложен патч:
http://drupal.org/node/338630
Но у меня он не сработал.
Может кто еще сталкивался с такой проблемой?
Прописать в settings.php переменную base_url я не могу, сайт должен быть доступен под двумя разными именами.