Коллеги, добрый день. Столкнулся с таким новшеством, после проведения нагрузочного тестирования - от меня потребовали не отчеты, а собственно ответ в чем же состоит проблема. Заказчик, дал мне доступ к трем своим серверным машинам (Windows 2003), который предположительно (sic), образуют тестовый стейджинг. И находятся за балансировщиком нагрузки (к нему у меня доступа нет). Не могли бы вы подсказать, каким именно логи Apache 2.2 могут мне помочь в анализе проблем. Понятно что acces.log и error.log. Может быть есть какие то дополнительные инструменты и плагины - позволяющие снимать информацию с Apache. Само приложение представляет из себя Drupal “морду”, SQL (предположительно MySQL) и очень много сторонних API.
При приведении тестирования вы снимали метрики с серверов которые нагружали?
Да конечно. Но только железа - процессора и оперативной памяти. С ними все в порядке.
Мне, кажется, всё же, если это не было оговорено заранее, то это не ваша работа. Пускай разработчики разбираются. Вы же не собирали метрики с JVM, с базы? Такие вещи надо заранее обговаривать. В логах, скорее всего, вы ничего не найдёте, если специально нужную информацию туда не выводили/
Скажем, так меня больше интересует - могу ли я как посмотреть на что тратится время. Я вижу, что в среднем ответ от сервера возвращается за 3-и секунды. Посмотреть бы, на что они тратятся.
Без дополнительного логирования и снятия метрик - нет.
Попробуй awstats, он вроде ничего был.
А какие проблемы выявились при тестировании? Что хочешь в логах искать?
Этого ты в логах вебсервера не увидишь.
Вот и хотелось бы понять куда и как рыть. Опыта в подобных изысканиях у меня нет. Но если хорошие заказчики, которые не раз шли нам на встречу, почему то предпочли попросить меня, а не удаленную команду разработки - я никогда не скажу, что это не моя работа.
Но насколько я вижу, awstats собирает статистику о посещениях?
Это правильная позиция. Однако, чтобы принести больше пользы (за более короткое время) хорошим заказчикам, лучше попросить у них контакты разработчиков, чтоб с ними напрямую взаимодействовать. Это сильно повысит эффективность
Вот туда и рыть, по компонентам. Для начала можно в профайлере браузера посмотреть Timing запросов - куда время тратится. Отсечь версию долгого рендеринга. Потом смотреть БД (через профайлер опять же) и взаимодействие с внешними API (чтоб не было много одинаковых запросов на странице, которые можно оптимизировать), через Fiddler, Wireshark и т.п.
Да, он смотрит по access.log статистику запросов к серверу и показывает статистику в динамике. Может когда-то пригодиться, но одним этим инструментом твою задачу не решить
Я вот и пытаюсь найти набор инструментов
Есть вот такой модуль для апача: mod_status - Apache HTTP Server Version 2.4 (возможно понадобится помощь разработчиков, чтобы синтегрировать и настроить). Этот модуль даёт возможность мониторить состояние апача: сколько воркеров заняты, чем именно заняты, приблизительное rps, использование cpu, время обработки запросов и т.д… В общем много полезной информации. Мониторить нужно в runtime. Пример можно глянуть вот тут:
http://httpd.apache.org/server-status
Единственное: не отображает размер очереди. И пока я не нашёл, как это вообще можно сделать.
Чтобы узнать на что тратится время нужно будет ещё попрофилировать само приложение. Тут опять же понадобится помощь разработчиков.
Спасибо. Обязательно попробую.
Пока вроде бы увидел, что пиковая нагрузка на процессор доходит до 100%. А генерит ее php-cgi.exe. Несколько экземпляров которого болтаются в памяти? Кто нибудь сталкивался с такой прожорливостью php-cgi.exe и если да то как ее можно улучшить или хотя бы детализировать.
Ну, насколько я понимаю - это и есть интерпретатор php. А какая часть сайта жрёт, тут уже надо рыть дальше.