Проблемы с производительностью, как определить причину?

Главные вкладки

Аватар пользователя ru.mail.alibek ru.mail.alibek 27 октября 2011 в 10:14

Есть сервер под 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?

Комментарии

Аватар пользователя tonyk tonyk 27 октября 2011 в 11:20

"ru.mail.alibek" wrote:
Как найти, что является причиной тормозов?
Разбираться надо. У вас сисадмин есть?
Поставьте модуль devel, он умеет показывать время генерации страниц.

Аватар пользователя ru.mail.alibek ru.mail.alibek 27 октября 2011 в 12:06

Доступ в интернет у сервера есть. Google Analytics отключил, ничего не поменялось.
Модуль devel поставил. Субъективно ничего не изменелись, страницы загружаются по несколько секунд, однако время генерации страницы в среднем меньше секунды.
Т.е. с Drupal все нормально и узкое место надо искать в сетевых параметрах?

Аватар пользователя andriy.olischuk andriy.olischuk 27 октября 2011 в 12:17

Начните с клиентской части - пройдитесь firebug'ом и yslow. Если время генерации страниц меньше секунды, а грузится страница долго - значит наверняка дело в теме. Тут yslow отлично поможет и даст рекомендации - уменьшить количество файлов стилей, спрайтовать графику...

Аватар пользователя drupby drupby 27 октября 2011 в 12:24

"andriy.olischuk" wrote:
Тут yslow отлично поможет и даст рекомендации - уменьшить количество файлов стилей, спрайтовать графику...

есть еще расширение page speed от гугла тоже в firebug добавляется вкладка и анализируется скорость загрузки и выдает рекомендации о том что тормозит загрузку страницы и как исправить .

Аватар пользователя ru.mail.alibek ru.mail.alibek 28 октября 2011 в 18:22

Произвел хронометраж с помощью 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. Откуда он взялся, мне непонятно.
Возможно из-за того, что я менял метод загрузки с публичного на приватный.
Если дело в этом, подскажите, как это починить?

Аватар пользователя Geldora Geldora 28 октября 2011 в 19:56

Сбросьте кэш

Это файлы агрегации друпалом цсс и жс, у меня тоже были проблемы с этими файлами. Как-то решились, не помню уже как Smile

Обратитесь к RxB, он вам поможет провести аудит и починит если надо.

Аватар пользователя ru.mail.alibek ru.mail.alibek 28 октября 2011 в 22:59

Похоже, что проблема достаточно распространенная:
http://www.google.com/search?q=drupal+files%2Flanguages%2Fru

Тут вроде бы выложен патч:
http://drupal.org/node/338630

Но у меня он не сработал.
Может кто еще сталкивался с такой проблемой?
Прописать в settings.php переменную base_url я не могу, сайт должен быть доступен под двумя разными именами.