Тестирование производительности LAMP-Cluster — как найти узкое место?

Тестирование производительности LAMP-Cluster — как найти узкое место?

Я настроил кластер из 3 узлов, на котором запущено LAMP-приложение с HAProxy, выполняющим балансировку нагрузки. Теперь я хотел бы оптимизировать и провести нагрузочное тестирование системы. Поэтому я отключаю jmeter-ec2, который запускает 15 экземпляров AWS-t1.micro из региона Ирландия, запуская тест jmeter против кластера, расположенного в выделенном центре обработки данных в Германии.

Проблема в том, что серверы едва ли справляются с нагрузкой 0,5, в то время как jmeter сообщает только о 70 tps. Теперь мне интересно, где узкое место и почему система не обслуживает больше tps.

Я ищу помощь в том, как подойти к этой проблеме, чтобы настроить одну службу за другой. Для обслуживания приложения запущены MySQL Galera, Apache, NginX и Solr, все с настройками конфигурации по умолчанию. Кластер состоит из 3 новых узлов bare metal с 32 ГБ ОЗУ и четырьмя процессорами XEON, соединенными между собой через гигабитную локальную сеть.

Заранее благодарю за любые полезные советы по систематической настройке/конфигурации системы.

решение1

Попробуйте удалить части системы, чтобы найти узкое место. 15 тестовых серверов — это звучит ужасно! Вы должны быть в состоянии получить 1000 TPS из одного тестового блока. Вы ведь не просите HAProxy ждать ответа, не так ли? То есть использовать функциональность maxconns и функциональность очередей? Как я уже сказал, попробуйте упростить, но если вы действительно думаете, что это HAProxy, то, пожалуйста, опубликуйте конфигурацию.

решение2

Я думаю, что клиенты, проводящие тестирование, представляют для меня очевидную проблему.

  1. Вы используете t1.micro. Они в основном бесплатны и бесплатны не просто так. Переключитесь на использование хотя бы m3.medium, large или xlarge для тестирования. Вы можете выключить их, когда закончите.

Комментарии из документации AmazonМикроэкземпляры T1хорошо резюмирует.

«Острые показатели»,

«Разработано для поддержки десятков запросов в минуту»

Но для бенчмарка вы хотите попробовать перегрузить свой сервер. Вы хотите сотни запросов в секунду. Это немного больше, чем они могут предоставить.

  1. Тестовый кластер не является локальным для тестового клиента, что приводит к дополнительной задержке. Ваш кластер находится в 1600 км в другой стране. Это тоже не поможет. Поэтому обязательно обратите внимание на пункт 3.

  2. Убедитесь, что ваши тестовые клиенты работают в многопоточном режиме.

  3. Используйте EU (Ирландия) - eu-west-1, который лучше подходит для тестирования конечной точки.

Связанный контент