Как найти причину перегрузки сервера?

От хостера начали приходить письма о появлении перегрузок в диапазоне от 19:45 до 18.15 (msk).
9-го мая за день было всего 40 посещений и не в это время, но сообщение о перегрузке пришло.

На хостинге размещено 2 сайта
saminsky.ru
opponent.ru

Установлен WP 2.1.3
WP-cache установлен и работает.

Как найти причину перегрузок?

У что в логах сервера у вас написано за такой период как указали – "от 19:45 до 18.15 (msk)"

Сегодня включил логи и получил следующую картинку.
Перегрузки были в период
(время указывает на окончание 15-ти минутного интервала,
указываются только те интервалы, в которые было превышение 5%):

2007-05-10 19:30:01 5.400%
2007-05-10 19:45:00 6.400%
2007-05-10 20:00:00 6.200%
2007-05-10 20:15:01 5.067%
2007-05-10 20:30:01 5.600%
2007-05-10 20:45:01 6.067%
2007-05-10 21:00:01 5.733%
2007-05-10 21:15:01 5.800%
2007-05-10 21:30:01 6.667%
2007-05-10 21:45:01 6.333%
2007-05-10 22:00:01 5.867%
2007-05-10 22:15:00 5.800%

В этот период появилось большое количество записей такого вида:

81.19.66.74 – – [10/May/2007:19:33:33 +0400] "GET /forum/viewtopic.php?t=9767 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:33:34 +0400] "GET /forum/posting.php?mode=reply&t=121 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:33:37 +0400] "GET /forum/viewtopic.php?t=9720 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:33:38 +0400] "GET /forum/viewtopic.php?t=9724 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:33:40 +0400] "GET /forum/viewtopic.php?t=9734 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
66.79.164.52 – – [10/May/2007:19:33:53 +0400] "GET /archives/225 HTTP/1.1" 200 23988 "-" "Mozilla/5.0/Gecko/20060808 Fedora/1.5.0.6-2.fc5 Firefox/1.5.0.6 (X11; U; Linux i686; en-US; rv:1.8.0.6)"
87.250.243.198 – – [10/May/2007:19:34:13 +0400] "GET /feed/ HTTP/1.1" 200 13918 "-" "YandexBlog/0.99.101 (compatible; DOS3.30; Mozilla/5.0; B; robot) 0 readers"
81.19.66.74 – – [10/May/2007:19:35:37 +0400] "GET /forum/viewtopic.php?t=9725 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:35:38 +0400] "GET /forum/viewtopic.php?t=9732 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:35:39 +0400] "GET /forum/viewtopic.php?t=9723 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:35:40 +0400] "GET /forum/viewtopic.php?t=9735 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
81.19.66.74 – – [10/May/2007:19:35:42 +0400] "GET /forum/viewtopic.php?t=9729 HTTP/1.1" 404 91450 "-" "StackRambler/2.0 (MSIE incompatible)"
89.163.54.120 – – [10/May/2007:19:36:05 +0400] "GET /wp-content/themes/wp-multiflex-3-10/style.css HTTP/1.1" 304 – "http://saminsky.ru/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
89.163.54.120 – – [10/May/2007:19:36:03 +0400] "GET / HTTP/1.1" 200 91501 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
89.163.54.120 – – [10/May/2007:19:36:05 +0400] "GET /wp-content/plugins/eventcalendar3/xmlhttprequest.js HTTP/1.1" 304 – "http://saminsky.ru/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
89.163.54.120 – – [10/May/2007:19:36:05 +0400] "GET /feed/ HTTP/1.1" 200 13918 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"
89.163.54.120 – – [10/May/2007:19:36:05 +0400] "GET /wp-content/plugins/eventcalendar3/ec3.js HTTP/1.1" 304 – "http://saminsky.ru/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"

поясню
/forum – ныне отсутствующий и некогда заспамленный phpBB forum.
Из этого я сделал вывод, что перегрузка вызвана индексацией убитого форума.
Поставил robots.txt

User-agent:*
Disallow:/forum

Сходил на рамблер и оставил заказ на очистку кеша.

Поставил и включил wp_cache.
Посмотрим на результат.

Есть еще вопрос можно ли как-то сделать что бы запросы вида
saminsky.ru/forum/viewtopic.php?t=9734

обрабатывались с наименьшими расходами?
Я подозреваю, что URL форума находится в спамерских базах и они так же создают нагрузку.

Почему-то запрос такого вида вызов несуществующего скрипта из несуществующего фолдера

saminsky.ru/forum/viewtopic.php?t=9734

не генерит ошибку, а просто вызывает вывод первой страницы, эквивалентно просто вызову
saminsky.ru

Странно все это(((

Перегрузку вряд ли вызовет количество запросов. Скорее всего какой-то скрипт требует много вычислений, поэтому сервер и выдал предупреждение. Я бы посоветовал для начала поставить счетчик количества запросов к БД с временем генереации где-нибудь в конце страницы (footer.php). После этого по одному поотключал бы плагины и посмотрел сколько они «кушают». Если много, то есть смысл от него отказаться.

Кроме этого, у вас локализацияxчерез файлы po и mo, а это тоже приличная нагрузка, хотя критичной её назвать сложно.

Значит так, вот решение моей собственной задачки.

проблема оказалась в том. что при использовании пермалинков в стиле
http://saminsky.ru/archives/123

wordpress записывает в файл .htaccess текст
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Который, если я правильно понимаю, перенаправляет любой запрос на index.php.

Я подставил в .htaccess строчку
redirect /forum http://www.saminsky.ru/error404.html

И создал легкий файлик
error404.html

Теперь при обращении к директории /forum с любыми аргументами скрипты не запускаются и делается прямой переход на указанный файлик.

UPD: редактировалось одновременно с сообщением от MAX, так, что может и не решение…

Перегрузку вряд ли вызовет количество запросов. Скорее всего какой-то скрипт требует много вычислений, поэтому сервер и выдал предупреждение. Я бы посоветовал для начала поставить счетчик количества запросов к БД с временем генереации где-нибудь в конце страницы (footer.php). После этого по одному поотключал бы плагины и посмотрел сколько они «кушают». Если много, то есть смысл от него отказаться.

Кроме этого, у вас локализацияxчерез файлы po и mo, а это тоже приличная нагрузка, хотя критичной её назвать сложно.

Где-нибудь есть пример такого счетчика?

Смущает то, что перегрузка возникает в момент, когда "живых" посетителей на сайте нет.

<?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.

Попробуй eventcalendar3 отключить

<?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.

поставил, работает, буду исследовать.
А как эта штука работает?
Откуда берется сигнал о начале отсчета?

Попробуй eventcalendar3 отключить

Оключение снижает число запросов со 149 до 138 и незначительную экономию времени.

Боже, 149 запросов?! Что ж за плагины у Вас стоят?
На мой взгляд, это много. У меня на сайтах максимум 35-40

Ого!

Цифра получена при активированных

Askimet
SideBar Widgets
EventCalendar
EventCalendar Widgets
Secure and Accessible PHP Contact Form

Тема WP-Multiflex-3 1.0

может виджеты так грузят, ща попробую….

Точно, отключил виджеты и получил 42 запроса.

Знал же старый дурак, что нефиг лениться, рученьками надо все делать, рученьками….

MAX,
поставил Вашу версию WP 2.1 ? работает примерно вдвое быстрее того, что было.

Спасибо.

Anonymous
Отправить
Ответ на: