Назад | Перейти на главную страницу

Тестирование производительности LAMP-Cluster - Как найти горлышко?

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

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

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

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

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

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

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

«Колючая работа»,

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

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

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

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

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

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