Я установил кластер из 3 узлов, на котором запущено приложение LAMP с HAProxy, выполняющим балансировку нагрузки. Теперь я хочу оптимизировать и провести нагрузочное тестирование системы. Поэтому я не использую jmeter-ec2, который запускает 15 экземпляров AWS-t1.micro из региона Ирландия, выполняя тест jmeter для кластера, расположенного в выделенном центре обработки данных в Германии.
Проблема в том, что серверы с трудом справляются с нагрузкой 0,5, в то время как jmeter сообщает только около 70 tps. Теперь мне интересно, где находится горлышко бутылки и почему система не обслуживает больше tps.
Я ищу помощь в том, как подойти к этой проблеме, чтобы настроить одну службу за другой. Для обслуживания приложения работают MySQL Galera, Apache, NginX и Solr, все с настройками конфигурации по умолчанию. Кластер состоит из 3 новых голых металлических узлов с 32 ГБ оперативной памяти и четырех процессоров XEON, соединенных через гигабитную локальную сеть.
Заранее благодарим вас за любую полезную информацию о том, как систематически настраивать / конфигурировать систему.
Я думаю, что клиенты-тестировщики - очевидная проблема для меня.
Комментарии из документации amazon Микро-экземпляры T1 подытоживает хорошо.
«Колючая работа»,
«Разработан для поддержки 10 запросов в минуту»
Но для теста вы хотите попробовать перегрузить свой сервер. Вам нужны сотни запросов в секунду. Это немного больше, чем они могут предоставить.
Кластер тестирования не является локальным по отношению к клиенту тестирования, что приводит к дополнительной задержке. Ваш кластер находится на расстоянии 1600 км в другой стране. Это тоже не поможет. Поэтому обязательно обратите внимание на пункт 3.
Убедитесь, что ваши тестовые клиенты работают в многопоточном режиме.
Используйте EU (Ирландия) - eu-west-1, что лучше для тестирования конечной точки.
Попробуйте удалить части системы, чтобы найти горлышко бутылки. 15 тестовых серверов - ужасно много! вы должны иметь возможность получить тысячи TPS из одного тестового образца. Вы ведь не просите HAProxy ждать ответа? то есть с использованием функций maxconns и очередей? Как я уже сказал, попробуйте упростить, но если вы думаете, что это HAProxy, опубликуйте конфигурацию.