Mysql Слишком много связей: Django sqlAlchemy - PullRequest
5 голосов
/ 24 сентября 2019

У меня есть приложение Django RestFrameWork, в котором мы используем библиотеку sqlalchemy для подключения MySql.

engine = create_engine('mysql+mysqldb://username:password@hostaddress/'
                       'DBname', pool_recycle=1800,
                        connect_args={'connect_timeout': 1800}, pool_size=10, max_overflow=10, pool_pre_ping=True)

connection = engine.connect()

По мере увеличения использования API Mysql создает новые подключения и количество threads_connectedпродолжает расти.После достижения максимального значения выдается ошибка Too many connectionsshow processList многие процессы будут в режиме sleep.Если мы перезапустим приложение, все соединения будут сброшены.Следующая диаграмма показывает no.of connections v/s time.Как решить эту проблему.

enter image description here

1 Ответ

0 голосов
/ 25 сентября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...