Существует два совсем других ответа.
Я рекомендую № 2, и я думаю, что Прагматически настроенные Программисты могли бы также.
Я не думаю, что кто-либо будет иметь решение Вашей проблемы, но только ведет и идеи. Вот некоторые:
Вам нужны роботы, которые проверят состояние каждой части Вашего сервиса. (тестирование единственного соединения с Вашей базой данных, получая статическую веб-страницу, получая динамическую веб-страницу...). Таким образом, Вы будете видеть то, что увеличивают повреждения сначала или время отклика.
у Вас есть сервис контроля/статистики? Необходимо отслеживать "количество активных соединений с базой данных", "количество активных веб-сессий", "количество потоков кота", "память, доступная", ЦП...
Мой совет, нет никакого процесса кота, оставленного, потому что они все застревают, ожидая ресурса (возможно, соединение с базой данных, или они - просто бесконечный цикл!). Инструменты, которые я перечислил прежде, определенно помогут Вам понять, почему Ваш сервер умирает медленно каждую неделю.
netstat
на Вашем сервере и взгляде на количество соединений с сервером базы данных (и проверка это против Вашего размера пула и мощности сервера базы данных).Если обслуживание статических страниц не требует никакого доступа к базе данных, то кажется маловероятным, что это - проблема ресурса базы данных как таковая. Может случиться так, что все объединенные потоки застревают где-нибудь, такие как ожидание диска базы данных или в мертвой блокировке. Первая вещь, которую я сделал бы, получают снимок отслеживаний стека с jstack
. Можно далее посмотреть на процесс с visualvm
или jconsole
.
Просто требуемый, чтобы добавить то, что это довольно характерно для проблем блокировки таблицы с таблицами MyISAM, может легко заставить соединения с БД накапливаться и заставлять приложение, ожидающее тех результатов находиться и находиться.
Можно хотеть проверить список процессов MySQL, чтобы видеть, существует ли много запросов, находящихся в заблокированном состоянии.
# mysqladmin processlist
- или-
mysql> show processlist;
Если блокировка будет проблемой, то Вы захотите видеть, если изменение механизма устройства хранения данных на проблемных таблицах от MyISAM до InnoDB выполнимо.
При установке веб-приложения лямбда-зонда (получите 1,7 беты), можно получить контроль уровня потока; слежение за этим скажет Вам, когда потоки застрянут, ожидая базы данных, а также хоста другой полезной диагностики.
Это немного старо, но все еще хорошо работает в недавних выпусках кота.