В рабочей среде мы иногда сталкиваемся с ошибкой MySQL 2003 (время ожидания соединения) без четкой основной причины, что затрудняет определение того, является ли такое поведение ожидаемым или указывает на основную проблему.
Во время этих событий приложение может неоднократно пытаться повторно подключиться, особенно через конечную точку /probe, используемую при проверке работоспособности. Это может привести к резкому увеличению количества попыток подключения, постепенному исчерпанию доступного пула подключений и, в конечном итоге, к срабатыванию .max_connections ошибки в базе данных.
В результате то, что начинается с периодических проблем с подключением, может перерасти в более широкую проблему доступности, когда база данных становится неспособной принимать новые подключения из-за насыщения.
У нас в команде нет никого, кто прошел бы через что-то подобное, поэтому мы не знаем, что делать.
Это наша конфигурация базы данных:
SQLALCHEMY_ENGINE_OPTIONS = {
"pool_size": 10,
"max_overflow": 2,
"pool_timeout": 30,
"pool_recycle": 1800,
"pool_pre_ping": True
}