Too many connections ежедневно в 20:00 Есть решение
Здравствуйте!
Возможно кто-то сможет помочь или хотя бы направить в нужном направлении. Мистика какая-то..
У меня стоит shop-script последней версии, рабочий сайт, которому больше 8 лет. Cайт на VDS от ihc, apache + nginx.
Какое-то время назад (точно не скажу) ежедневно в 20:00 начал виснуть сайт. Как по будильнику ровно в 20:00 можно было даже не пытаться на него зайти. Так продолжалось примерно до 20:30 и все снова начинало летать. Проверяла крон, проверяла логи апача и nginx, ничего подозрительного не увидела. Т.к. помимо этого бывали другие проблемы с ПО сервера, то решила взять другой тариф, установить с нуля Debian 11 и все ПО, перенести сайт. Все прошло успешно, сайт начал работать еще быстрее (например, обновление остатков стало занимать 24 минуты против 42-45 раньше). Но ровно в 20:00 опять начинается тормоз.. Только теперь он продолжается до примерно 21:15 и периодически появляется ошибка 1040 и too many connections..
Т.к. я опять сама не нашла проблем (в кроне ничего лишнего + все трудоемкие задачи стоят на 3-6 утра, в логах сервера никаких подозрительных запросов), то обратилась в поддержку хостинга. Там в момент тормозов подключились и сказали, что основная нагрузка идет от Mysql - большой поток подключений, много однотипных запросов, но на DDos не похоже. Сказали разбираться с кодом. Но я даже не представляю, что может ежедневно в 20:00 так работать (причем без крона), что сайт перестает отвечать..
Может кто знает, в чем может быть проблема, или хотя бы где копать?
6 ответов
Чудес не бывает. Если вы согласны с этим посылом, то надо искать. Если в логах сервера активность в указанное время не замечена, то остается cron. Как вариант, задания cron в 20-00 могут идти из под другого пользователя (например root). Можете попробовать установить плагин Управление плагинами. Он ведет расширенное логгирование в cli.log, и вы всегда можете посмотреть какое задание было запущено в то или иное время, когда закончилось и были ли в процессе какие-то сбои или нет.
Спасибо! Сейчас установлю. Но я смотрела все задания крон, там только регулярные задания, созданные панелью ispmanager и те, что я добавляла сама. То, что выполняется регулярно в течение дня, не может быть причиной ведь тормоз только в 20:00 начинается, а именно на это время ничего не назначено. Но проверю еще на всякий случай.
Начните с плагина о котором я упоминал а там уж видно будет из логов при делах тут cron или нет
Хостинг должен был увеличить лимит соединений по вашему тикету. Попробуйте им ещё раз написать и прямым текстом сделайте запрос на увеличение лимита соединения/обращения к базе данных. Должны увеличить. А так да, надо искать причину нагрузки.
Лимит соединений я уже несколько раз увеличивала сама
В общем, если вдруг кто столкнется с таким же, то все оказалось одновременно и проще, и сложнее - ровно в 20:00 у нас с разных IP адресов нашего города начинались запросы ко всем товарам сайта с одинаковым user-agent "Go-http-client". Соответственно, т.к. IP было несколько, то в глаза они не бросались и сами запросы не выглядели подозрительно. Об этом поддержка хостинга и говорила. Но т.к. запросов было очень много, то сайт начинал тормозить. В другое время никаких запросов с таким user-agent у нас не было. Соответственно, пока вроде решила проблему заблокировав Go-http-client в htaccess. Вот такой, видимо, привет от конкурентов..