RDS-сервер имеет до 40 подключений максимум, так как в следующей документации
я использую Magento 1.9, и в некоторых моментах я достигаю максимального количества, после чего сайт не работает.
Есть ли у вас какой-либо рекомендуемый способ решить эту проблему?
Насколько я понимаю, если у меня есть 2 веб-сервера для подключения к RDS-серверу ... тогда у меня должно быть 2 RDS-соединения, не более.
amazon-web-services
database
rds
amazon-rds
Алаа Бадран
источник
источник
max_connections
параметра. Для большинства рабочих нагрузок вы должны иметь возможность безопасно увеличить его, потому что это безопасное консервативное значение по умолчанию ... но вы захотите выяснить причину этих всплесков.Ответы:
Предельная переменная max_connections AWS RDS основана на типе экземпляра, поэтому вы можете обновить RDS или создать дополнительную реплику.
Типы RDS с пределом max_connections:
Обновление 2017-07
Текущий параметр max_connections RDS MySQL используется по умолчанию
{DBInstanceClassMemory/12582880}
, если вы используете t2.micro с 512 МБ ОЗУ, max_connections может быть (512 * 1024 * 1024) / 12582880 ~ = 40 и т. Д.Каждый веб-сервер может иметь много подключений к RDS, что зависит от ваших запросов SQL от веб-сервера.
источник
{DBInstanceClassMemory/12582880}
, поэтому, когда вы используете t2.micro с 512 МБ ОЗУ, max_connections может быть тем,(512*1024*1024)/12582880 = 40.69
что может объяснить ваши 40 максимальных соединений.show variables like 'max_connections';
.parameter group
и изменить значениеmax_connections
на значение, которое вы хотите. Это будет новый лимит соединения для вашего экземпляра RDS.SHOW VARIABLES WHERE Variable_name='max_connections'
Вы можете изменить
max_connections
значение, либо обновив политику параметров по умолчанию, либо создайте новую - я бы предложил пойти с последним.max_connections
значениеНадеюсь это поможет!
источник
Хотя увеличение максимального количества соединений в конфигурации сервера может решить проблему, вам следует рассмотреть возможность проверки конфигураций и реализаций вашего приложения.
Я не эксперт по Magento, но, поскольку у меня недавно была похожая проблема в проекте, над которым я работал, я заметил, что реализация структуры по умолчанию, которую я использовал, создавала соединение при каждом обращении к базе данных.
Хотя это может не вызвать каких-либо проблем, в тот момент, когда у вас больше посетителей или задач, которые интенсивно работают с базами данных и могут работать на нескольких соединениях, лучший способ предотвратить сбой сервера с ошибкой «СЛИШКОМ МНОГО СОЕДИНЕНИЙ» - внедрить базу данных. пул подключений.
Это предотвращает создание приложением большего количества соединений, которые может обрабатывать сервер, и не приводит к сбою приложения для пользователей. Пул соединений будет хранить очередь для запросов на доступ к базе данных, пока соединение не станет доступным, чтобы он мог продолжить обработку запроса пользователей.
Просто имейте в виду, что пул соединений должен быть многопоточным.
источник
Войдите в свой экземпляр RDS (используя клиент MySQL) и выполните следующий запрос:
источник
Актуальная информация для Postgresql t3-instance (группа параметров default.postgres10):
Это похоже на default.postgres9 и default.postgres11
источник
Это не 40 подключений, а 40 экземпляров RDS. Скорее всего, вы используете только 1 экземпляр на основе вашего описания.
Вы можете иметь тысячи соединений с сервером RDS, потому что каждый раз, когда открывается сеанс с базой данных, это создает новое соединение. Вероятно, вы сталкиваетесь с ограничениями производительности и должны увеличить размер экземпляра RDS.
источник