проблемы с нагрузкой

BlackSmoke
На сайте с 22.11.2008
Offline
19
663

Собственно, даже не знаю, с чего начать. В общем, есть довольно неплохой по характеристикам сервер, есть ~50 сайтов на нем, установлена связка apache+nginx, обработчиком php выступает апач. Теперь сама проблема. Иногда, в абсолютно случайное время дня или ночи, нагрузка возрастает во много раз, сервер ложится в аллокате мемори. Нагрузку создает апач(процесс httpd). Множество процессов, каждый из которых поедает внушительное количество памяти и процессорного времени, кладут машину за 5-10 минут. Отслеживание ддоса на уровне php ни к ему не привело, да и после перезагрузки сервера эта нагрузка исчезает сама.. до следующего падения. Крон пуст, таких ресурсоемких скриптов даже не могу себе представить, во всяком случае, у меня их нет, средняя нагрузка, даже при индексации ботами, около 30%. Теперь вопрос: можно ли отследить, какой скрипт создает эту нагрузку? В логах апача ничего интересного, никаких повторяющихся запросов и т.д.

....
O
На сайте с 13.08.2008
Offline
26
#1
BlackSmoke:
Собственно, даже не знаю, с чего начать.

Совершенно стандартная ситуация.

Очень похоже, что приходит какой-то бот, и дергает тяжелую ссылку - например, поиск. База начинает тормозить, пхпшный процесс ждет окончания операции с базой. В этот момент бот дергает еще несколько похожих ссылок - которые так же встают в очередь на обработку в базе. Количество потоков пхп-процессов растет, съедается память - и остальные процессы начинают выкидываться в своп.

Outsourcenow.ru: оттюним ваш веб-сервер. 100 млн. запросов в сутки - наш размерчик!
BlackSmoke
На сайте с 22.11.2008
Offline
19
#2

Но найти эти "тяжелые ссылки" будет найти довольно проблематично, учитывая количество сайтов. Нет ли решения для отслеживания запуска скриптов под апачем, который сам подобной статистики не ведет?

Himiko
На сайте с 28.08.2008
Offline
560
#3
BlackSmoke:
Но найти эти "тяжелые ссылки" будет найти довольно проблематично, учитывая количество сайтов. Нет ли решения для отслеживания запуска скриптов под апачем, который сам подобной статистики не ведет?

Операционка какая?

Можете включить mod_status в Apache и смотреть в момент возрастания нагрузки.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
N
На сайте с 06.05.2007
Offline
419
#4

для mod_status придется сидеть и постоянно смотреть.

попробуйте mod_log_slow http://code.google.com/p/modlogslow/

Кнопка вызова админа ()
BlackSmoke
На сайте с 22.11.2008
Offline
19
#5
Операционка какая?

redhat

попробуйте mod_log_slow http://code.google.com/p/modlogslow/

Спсибо, сейчас заюзаю.

M
На сайте с 16.09.2009
Offline
278
#6
BlackSmoke:
Но найти эти "тяжелые ссылки" будет найти довольно проблематично, учитывая количество сайтов. Нет ли решения для отслеживания запуска скриптов под апачем, который сам подобной статистики не ведет?

решение: 1) детектим в мониторинге проблемный момент (по LA, таймауту

коннектов к веб-серверу, etc) 2) собираем необходимую информацию

по (2). вероятнее всего, проблема связана с медленной работой скриптов.

например, если запросы к базе лочат друг друга - можно попытаться проанализировать

mysqladmin proc в момент проблемы. будет видно какие запросы создают проблему.

дальше будет понятно, какой сайт и какие конкретно HTTP запросы это вызвали.

что скорее всего у вас криво: не видно никакого разграничения ресурсов

сервера (сколько скриптам конкретного сайта дано CPU и памяти, сколько

коннектов к базе).

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий