Помогите решить проблему с 'max_user_connections' active connections

foremail

Новичок
Привет! Замучился уже на своем форуме с этой ошибкой: 'max_user_connections' active connections [1203]. У меня выделенный сервер, не могу никак настроить и понять, в чем дело. Почти каждый день получаю под 3000-5000 коннектов и тогда получаю эту ошибку.
Скажите, как ее можно решить? Есть ли специалисты? Готов оплатить оправданный труд. Сил нет, достало! То ли ддос, то ли еще что.

У меня вот какая идея. У меня на сайте никогда не бывает больше 200 человек в онлайне, почему бы не поставить ограничения в 250 коннектов (пользователей), чтобы когда заходит 251-ый --- ему придется подождать, прежде чем попасть на сайт (например это будет "очередь"), освободилось место - его пропустило на сайт. Или как-то так. И сайт не будет вырубаться и показывать эту ошибку. Такое же возможно запрограммировать? Или какие еще есть варианты решения?

Спасибо!
 

foremail

Новичок
Прекрасно, тогда ограничиваем кол-во коннектов по указанному мной примеру!
 

fixxxer

К.О.
Партнер клуба
Считать надо не пользователей, а хиты.

Ограничить в nginx можно так http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html, но сначала надо разобраться нужно ли. Mysql-ю можно спокойно увеличить число соединений, это почти "бесплатно".
 

foremail

Новичок
fixxxer, а до какого предела можно их увеличивать, чтобы безопасно для сервера? Вроде бы если свой сервер, то там сам задаешь этот параметр. Сначала там было 30, увеличивали до 60 и затем до 100, не помогло. До скольки надо увеличивать, если такие "хиты" вдруг начинают расти до 3000-5000. Причем совершенно ясно, что это не естественная нагрузка. Ну не может такого быть. Значит кто-то умышленно увеличивает "хиты". Это и надо грамотно ограничить.
fixxxer, если знаете как решить и есть существенный шанс довести до конца - предоставлю доступы и оплачу. Проблема с августа мучает, запарила ппц. И решить никак не могут. Смотрели "спецы", но ничего конкретно не решили. Хотя так радикально наверное и не ставили ограничений. Спасибо!
 

Фанат

oncle terrible
Команда форума
Обычно "злоумышленником" оказывается автор кода.
Для начала я бы отключил пконнект и убедился, что соединение устанавливается только один раз.
Дальше уменьшил бы частоту, с которой аякс скрипты опрашивают БД.
Дальше оптимизировал бы запросы, чтобы каждое соединение длилось как можно меньше.

Но прежде всего я бы послушал внятное объяснение всех цифр. Что такое "3000 коннектов"?
 

fixxxer

К.О.
Партнер клуба
до какого предела можно их увеличивать, чтобы безопасно для сервера?
Да до какого угодно, в принципе.

Но сначала посмотри, нет ли в show processlist огромной кучи idle процессов. Если есть, ищи некорректно используемые pconnect-ы.
 
Сверху