Есть ли тулзы или способы для определения узкого места в архитектуре (php apache mysql)?
Всем привет.
Может кто-нибудь уже имел опыт с определением узкого места у сервака.
Кейс следующий.
Имеется сервер: 12-ти ядерный проц, (2.6Ghz на ядро). 24 гига оперативы, веник SSD на 200 гигов.
Есть приложение написанное на Symfony. Страница отдаётся за 250ms, что в принципе неплохо, причём сам код отрабатывает за 150ms. Хочется узнать что на высоких нагрузках его будет зажимать (нехватка памяти для MySQL, нехватка процессора для PHP или же нехватка I/O для контента).
Для каждого из этих вариантов есть решения, которые стоило бы предпринять. Просто хочется узнать куда лучше оптизизировать.
Возможные варианты решений:
для веб-сервера - разнесение на несколько серверов с балансером.
для MySQL - репликация.
для контента - CDN.
Интересные тулзы, спасибо. Тут явно видны показатели для IO и проца. Буду пробовать анализировать. Нагружать можно jMeter-ом? Или есть что-нить поудобнее?
так может сделать нагрузочное тестирование? Понятно, что прямо на 100% это не повторит реальную работу - но явно будет ближе к реалиям, чем теоретические выкладки.
Делал нагрузочное тестирование jMeter-ом.
Делаю одновременных 300 запросов, видно что все ядра начинают работать, и потом отпускают, видимо начинает контент отдаваться. Но может есть способ профилировать отдельно для MySQL и Apache. Чтобы понять куда уходят процессорные мощности. Память тоже выжирается где-то до 8 ГБ. Потом освобождается. Вот именно в профилировании дело. Чего больше не хватает мускула или веб-сервера..