Доброго всем времени суток!
Уж и не знаю, куда точно писать и куда дальше копать, может, кто надоумит.
Проблема следующая. Есть машина, на которой крутятся Apache с
вкомпиленным PHP и крутится MySQL. Периодически наблюдается ситуация,
когда Апачи по малопонятным причинам начинают резко плодиться и за
несколько минут доходят до разрешенного в конфиге Апача предела
(сейчас - 70 клиентов). При этом порождается некоторое число процессов
MySQL, причем их число примерно равно числу Апачей. И вся это занимает
метров 30-40 свопа при 128 метрах оперативки и не думает
рассасываться. Лечится путем остановки и запуска Апача.
В принципе, такая проблема наблюдалась периодически. На этой неделе - три
раза за три дня. На прошлой - два раза с перерывом в два-три часа. До
этого не наблюдалась больше двух месяцев. Еще до этого наблюдалась пол июля.
Так что периодичность странная.
Когда после продолжительного перерыва проблема вновь всплыла на прошлой
неделе, по выводу команды mysqladmin processlist было хорошо видно,
что многие процессы ждут на одной-единственной таблице (в состоянии lock).
Мы решили, что это классическая проблема MySQL, когда при операции update
лочится вся таблица и все селекты встают в очередь. Было очень похоже. Два
дня назад для таких критических таблиц мы изменили их тип на InnoDB (новый
тип таблиц, где лочится уже не вся таблица, а отдельные строки). Однако
вчера мы получили ту же проблему, которую уже и непонятно куда копать.
В фоне у меня крутится команда top, которая раз в минуту сбрасывает свой
вывод в файл. Ближайший к моменту останова Апача вывод показывает, что был
71 процесс httpd (кстати, подскажите почему 2 из них от имени рута? Я думал,
что должен быть только один от имени рута, из которого плодятся процессы от
имени nobody) и 60 процессов mysqld. Есть также вывод команды mysqladmin
processlist перед остановом Апача, но там лично я никакого криминала
углядеть не могу. Видно только, что в основном используются базы двух
проектов. Но от этого не легче, ткнуть в конкретное место пока не удается.
Заранее всем огромное спасибо!
Всеволод.
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.