Стресс-тест веб-приложения

Я использую pylot для стресс-тестирования созданного мной веб-приложения. Тест имитирует вход 100 пользователей в приложение, и тест длится 200 секунд. В среднем ок. К серверу делается 4800 запросов и столько же подключений к MySql, каждое из которых выполняет 5 запросов, то есть мы говорим о 24К запросов во время теста.

Запросы простые, а в таблицах очень мало данных. Дело в том, что во время теста я не могу получить доступ к приложению из Интернета. Я либо не могу подключиться к MySql, либо время отклика очень медленное. Имейте в виду, что тест проводится на образе CentOS VMware, который у меня есть на моем ПК (выделено 512 МБ памяти).

Ниже представлены результаты теста

Запросы: 4809 Ошибки: 1 Среднее время ответа: 3,358 Средняя пропускная способность: 23,53 Текущая пропускная способность: 420 байт Получено: 193028

Я считаю, что ошибки подключения вызваны низкой тестовой средой, но есть ли способ настроить MySql для приема большего количества подключений?

Спасибо.


person Thomas    schedule 17.02.2010    source источник


Ответы (2)


Попробуйте получить более подробную информацию об ошибках. Либо проверьте результаты, либо добавьте ведение журнала на веб-сайт.

person Nat    schedule 18.02.2010

Вы используете пул соединений?

Максимальное количество подключений MySQL может быть легко увеличено, если у вас действительно их недостаточно, обратите внимание на этот блок либо в my.ini, либо в my.cnf в установочном каталоге MySQL:

# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.

max_connections=500

Если вы используете пул соединений, вы можете ограничить его размер, скажем, 250 из 500, доступных MySQL, тогда у вас есть 250 «запасных», которые гарантируют, что ваш веб-доступ получит соединение. Вы можете проявить изобретательность, задав процессу входа 100, чтению данных 100, записи данных 100 и т. д., но это, очевидно, в значительной степени повлияет на дизайн вашего приложения.

person Brian    schedule 23.02.2010
comment
Привет, Брайан. Нет, я не использую пул, а параметр max_connections в my.cnf равен 768, поэтому у меня не должно быть проблем с соединениями (я полагаю). - person Thomas; 28.02.2010
comment
Если настроить пул соединений достаточно просто, я бы попробовал; вы можете достичь этого предела подключения с помощью такого стресс-теста. Либо так, либо просто установите его на 1500 и посмотрите, как вы справитесь :-) - person Brian; 28.02.2010