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

Ошибка теста выдержки в AWS RDS MySQL

У меня есть база данных MySQL в AWS RDS. Это большая машина r4 с оперативной памятью 16 ГБ. Я тестировал его нагрузочную способность и обнаружил, что до 18 одновременных пользователей приложение работает нормально. Затем мы решили провести тест на выдержку в этом приложении. В то время мы видели результат или время отклика становилось все выше и выше.

Например: в первом цикле тест завершается за 1 минуту для 3 API. На 12-м цикле я получил ошибку Bad Gateway. На 20-м цикле время отклика для небольшого API увеличилось почти до 1 минуты (в первом цикле оно составило 4 секунды).

Я не уверен, что вызывает эту проблему с производительностью. Я не специалист в RDS. Что мне делать, чтобы повысить производительность или избежать этой проблемы?

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

Если 18 работают нормально, но 20 получают плохое время отклика, то попробуйте остановить новых клиентов у дверей; не позволяйте им теснить проходы.

Или...

Другая распространенная причина (и решение) - медленные запросы. Найдите их и исправьте. Используйте журнал, чтобы найти их; затем покажите нам запросы и SHOW CREATE TABLE. Иногда вы можете ускорить запрос, добавив составной индекс. Чем раньше эти покупатели выйдут из магазина, тем скорее смогут войти другие. По-прежнему может быть ограничение в 18, но если каждый заканчивает работу в два раза быстрее, тогда у вас будет вдвое большая «пропускная способность» без уменьшения «задержки».

(Я не поклонник тестов; они часто указывают неверное направление.)