2017-01-05 2 views
1

У нас возникают некоторые проблемы с подключением к базе данных в Amazon RDS. Если вы посмотрите на график ниже, соединения растут, а затем внезапно падают, как пилообразная волна.Amazon RDS Соединение с базами данных странное поведение

DB Connections last 24 h

Экземпляр базы данных является t2.small, но мы изменили его после 150 пика к t2.large, но пилообразный еще есть, хотя и не так широко.

Существует несколько баз данных, в основном InnoDB, некоторые MyIsam. Общий размер таблиц составляет 0,87 ГБ, активируются general_log и slow_log.

Основная проблема заключается в том, что нам нужно запустить процесс с большим количеством запросов, который потребляет много ресурсов базы данных (это займет около 30 минут, но использует только одно соединение), и когда мы начнем его, мы всегда достигают предела max_connections и все приложения, потребляющие эту базу данных, разбиваются.

Я не понимаю, почему он растет, а затем падает, я был бы признателен, если бы кто-нибудь мог это объяснить.

Кроме того, после достижения max_connections база данных блокируется до тех пор, пока мы не увеличим класс экземпляра. Это занимает около 10 минут.

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

Спасибо

+1

Сколько приложений связано с этой базой данных? Если вы настраиваете локальный сервер MySQL, вы не видите того же поведения? На первый взгляд моя догадка заключается в том, что ее приложение связано с ... – jfneis

+0

Существует около 20 веб-приложений, в общей сложности около 50 экземпляров. В локальном MySQL это трудно проверить, потому что нам нужно будет имитировать все запросы, которые у нас есть на производстве. – Mirko

+1

. Вы указали мне в правильном направлении jfneis: проблема заключалась в приложении nodeJS, которое не закрывало соединение MySQL. С таким большим количеством приложений это было сложно, но мы более подробно рассмотрели general_log и обнаружили, что это приложение не прекращает подключения. Спасибо! – Mirko

ответ

1

Похоже, что это проблема, связанная с приложением.

Проверьте конфигурацию пула соединений DB в ваших приложениях.

Если не удалось, попробуйте установить локальную базу данных и проверьте, осталось ли это поведение.