Имеется Web-сервер FreeBSD 8.1 x64 16Gb памяти 2x4-Core Xeon
На сервере размещено ~100 сайтов со своими б/д.
Базы данных на MySQL, большая часть баз (активные проекты) на InnoDB, остальные на MyISAM.
В роли Web-сервера выступает связка Nginx+Apache.Проблема заключается в следующем периодически в MySQL виснут запросы (select/update/insert) (время выполнения может достигать несколько минут). Из-за чего резко увеличивается кол-во mysql thread'ов. Причем эти запросы в "нормальных" условиях выполняются мгновенно (запросы простые: выборка по ключу из одной таблицы или добавление/обновление одной записи).
При этом нагрузка на сервер не увеличивается, ни по процессору ни по дисковой подсистеме, в логах mysql ничего не фиксируется.Еще наблюдается некая странность - если перезагрузить сервер то примерно 2 дня все работает
идеально, потом начинаются проблемы. если перезагружать отдельно mysql, то такого эффекта нет - так же тормозит.Если кто может помогите советом, хотя бы в какой стороне искать причины ...
Спасибо.
Думаю надо тюнить /etc/sysctl.conf
А также /etc/security/limits.conf
>[оверквотинг удален]
> простые: выборка по ключу из одной таблицы или добавление/обновление одной записи).
> При этом нагрузка на сервер не увеличивается, ни по процессору ни по
> дисковой подсистеме, в логах mysql ничего не фиксируется.
> Еще наблюдается некая странность - если перезагрузить сервер то примерно 2 дня
> все работает
> идеально, потом начинаются проблемы. если перезагружать отдельно mysql, то такого эффекта
> нет - так же тормозит.
> Если кто может помогите советом, хотя бы в какой стороне искать причины
> ...
> Спасибо.
А на что там обратить внимание?
файла limits.conf вообще нет> Думаю надо тюнить /etc/sysctl.conf
> А также /etc/security/limits.conf
в /etc/sysctl.confkern.maxfiles=204800
kern.maxfilesperproc=200000
kern.ipc.somaxconn=4096
vm.pmap.shpgperproc=2048
kern.threads.max_threads_per_proc=4096
MySQL при работе обрабатывает примерно 900 запросов в секунду при этом использует примерно 8 тредов. При "затыке" кол-во тредов вырастает до 50~150
> в /etc/sysctl.conf
> kern.maxfiles=204800
> kern.maxfilesperproc=200000
> kern.ipc.somaxconn=4096
> vm.pmap.shpgperproc=2048
> kern.threads.max_threads_per_proc=4096
> MySQL при работе обрабатывает примерно 900 запросов в секунду при этом использует
> примерно 8 тредов. При "затыке" кол-во тредов вырастает до 50~150Скачайте tuning-primer.sh (http://www.day32.com/MySQL/) и посмотрите, чего MySQL не хватает.
mysql какой версии?
У меня похожие проблемы, начались после обновления до 5.1.50.
Только в момент подвиса процессор грузится раза в 4 больше чем обычно и запросы выполняются очень медленно..
> mysql какой версии?
> У меня похожие проблемы, начались после обновления до 5.1.50.
> Только в момент подвиса процессор грузится раза в 4 больше чем обычно
> и запросы выполняются очень медленно..5.0.90_1 собиралось из исходников