Wicked
Новичок
Сбор информации о производительности системы.
Столкнулся с ситуацией, когда есть более-менее готовая система (linux, nginx, fastcgi, php, mysql), которая просто очень медленно работает. Я на ней новичок, знаю мало. Передо мной стоит задача - сделать, чтобы она работала быстро
Как оптимизировать пхп я знаю. Как оптимизировать работу с бд - нормально. С масштабированием в последнее время тоже ничего. Кэширование - не вопрос.
Но сейчас понял, что не располагаю связующим звеном: эффективными методиками и средствами анализа того, ГДЕ именно системе требуется мое вмешательство. А это демотивирует, потому что я знаю, что в подобной ситуации мои предположения в итоге на 90% окажутся неверными, и я офигенно заоптимизирую ту часть, которая нуждается в оптимизации ДАЛЕКО не в первую очередь.
Собственно, что хочется в идеале:
Какой-то монитор-агрегатор того, что происходит на серверах (бэкендах), удовлетворяющий следующим требованиям:
Ну и опишу, что имеем на данный момент (курсивом - несоответствия критериям):
Столкнулся с ситуацией, когда есть более-менее готовая система (linux, nginx, fastcgi, php, mysql), которая просто очень медленно работает. Я на ней новичок, знаю мало. Передо мной стоит задача - сделать, чтобы она работала быстро
Как оптимизировать пхп я знаю. Как оптимизировать работу с бд - нормально. С масштабированием в последнее время тоже ничего. Кэширование - не вопрос.
Но сейчас понял, что не располагаю связующим звеном: эффективными методиками и средствами анализа того, ГДЕ именно системе требуется мое вмешательство. А это демотивирует, потому что я знаю, что в подобной ситуации мои предположения в итоге на 90% окажутся неверными, и я офигенно заоптимизирую ту часть, которая нуждается в оптимизации ДАЛЕКО не в первую очередь.
Собственно, что хочется в идеале:
Какой-то монитор-агрегатор того, что происходит на серверах (бэкендах), удовлетворяющий следующим требованиям:
- Достаточно широко охватывающий систему.
- Достаточно точно и детально указывающий на то место и условия, при которых возникают тормоза.
- Наглядность.
- Высокая стабильность, чтобы можно было мониторить продакшн.
- Минимальное падение производительности.
Ну и опишу, что имеем на данный момент (курсивом - несоответствия критериям):
- Mysql query log + mysqlsla для информации о производительности бд. На данный момент он почти не работает, потому что нету запросов, которые выполняются дольше секунды. Да и без microslow патча (который не хочется ставить на живую систему), это выявляет только очень грубые проблемы. Проблемы с охватом.
- Munin, для отслеживания, стало ли системе жить лучше. Пока разбираюсь, как по этой кофейной гуще делать какие-то выводы Нету детальной информации
- Логгер времени выполнения достаточно высокоуровневых частей системы (написан на чистом PHP, часть самой системы). К сожалению, выдает не очень репрезентативную статистику (это изменится в лучшую сторону при увеличении кол-ва пользователей), и не особо наглядную (думаю над тем, какие отчеты мне нужны).
Наглядность - пока хромает. Стабильность: были прецеденты Падение производительности: были прецеденты. - Xdebug на девелоперском сервере для обката частей, которые были признаны медленными (на основании пред. пункта). Для анализа - CachegrindVisualizer (win) / KCachegrind (linux). Проблемы с охватом, наглядностью, стабильностью и падением производительности. Зато детализация непревзойденная.
- Pinba monitor. Еще разбираюсь.