Дано: Shared хостинг (Apache + MySQL) с выделенным ip и допустимой нагрузкой аккаунта в 3%. Сайт на wordpress с 600 постами и 200 униками в день. Также установлено много плагинов (около 20), перечислены ниже списком.
На протяжении 2 лет нагрузка не выходила за рамки 3% существенно и надолго. Но с начала октября хостер уведомил о значительном постоянном превышении лимита загрузки процессора. На тот момент средние значения за день были от 7-15%. Таблица загрузки в панели управления доступна только за календарный месяц, поэтому узнать каким образом загрузка росла или появилась сразу - не представляется возможным. К середине октября загрузка не опускалась ниже 10%.
Из предпринятых действий:
- изменены все пароли.
- обновление wordpress c 3.5 до последнего - ничего не поменяло.
- включал кеширование сторонними плагинами - толку ноль.
- отключены все плагины и закрыты папки к ним переименованием папки по ftp - толку ноль.
- предложение через mod_status найти виновника хостером отвергнуто.
- при закрытии в основном .htaccess по deny from all - загрузка падает до нуля.
- смена темы с рабочей на twenty ten - ничего не изменила.
- смена БД на свежую, только что установленную - загруз пришел к 0.7%.
- импортируя по 1 таблице в БД за раз - вычислил, что после импорта таблицы wp_options загруз возвращается к 10-15%.
- если из этой таблицы вычистить все кроме основных настроек вордпресса - загруз плавает в рамках 1.5 -2.5%.
- в таблице wp_options содержится 420+ строк.
Грешил на хлам от плагинов в этой таблице. Но пока разбирался со строками - заметил, что загруз с оригиналом wp_options опустился к 3,5% - 6% на протяжении недели. Посещалка упала почти до нуля еще с начала октября из-за отключения рабочей темы и выпиливания таблицы постов. Судя по логу сервера заходят 1-5 человек в день. Боты поисковиков стучаться постоянно. Получается, что загруз при тех же данных снизился почти вдвое.
Данные на вчера:
% от 1CPU (CPUTIME в минутах) = 6.05 % (87.12cp)
Ср. ОЗУ (МБ) = 58.31 МБ
MySQL cputime = 39 сек.
У меня закончился арсенал вариантов и решений.
Пожалуйста, подскажите в какую сторону копать или как выяснить откуда эта напасть с загрузом взялась?
У друга есть такой же аккаунт у этого хостера, 5 сайтов на вордпрессе и друпале с посещалкой каждого от 500 - 1000 уников. Загруз по его аккаунту не превышает 2-2.5%. Без какой либо оптимизации производительности и кеширования.
Список плагинов:
AddThis Social Bookmarking Widget
AdRotate
Advanced Custom Fields
All in One SEO Pack
belavir (php MD5)
Cat + Tag Filter
Comprehensive Google Map Plugin
Contact Form 7
Contextual Related Posts
Cyr-To-Lat
Dagon Design Sitemap Generator
Display Posts Shortcode
Disqus Comment System
Get Post List With Thumbnails
Google XML Sitemaps
Lightbox 2
Meteor Slides
qTranslate
Шорткоды
Simple Ads Manager
Simply Show IDs
Wordpress Popular Posts
WP-pagenavi
WP-PostRatings
WP PHP widget
WP в режиме обслуживания
WP Tuner
Simple "Coming soon" And "Under construction"
UPD: хостер говорит, что запросов медленнее 10 секунд нет.
Всем спасибо, Проблему выявил. Когда убрал базу постов, сократилось количество посетителей в день и стали заметны запросы от поисковых ботов, коих было 15-20к в сутки. В основном от Бинга. Бинг ушел в бан всей подсетью через .htaccess и загрузка стала нормальной.
Я вот тоже так подумал и запросил лог для изучения, но хостер сказал, что лога нет, ибо нет медленных запросов (тех. что дольше 10 сек). Это может указывать на, что хостер сам создает нагрузку, что бы ерекинуть на более дорогой тариф с большим допустимым процентом загрузки?
Что за хостер то? Если это мастерхост, то ему эти игрища ни к чему, а если Вася пупкин инкорпорэйтед, то, наверно, возможно, но опять же я не могу утверждать.
Роман: вы только теряете время. Хостер вас блокирует, но о причинах не сообщает (не дает логи). Мне видится только один путь, сменить его на более адекватного.
Самый простой способ - изменить хостинг. Есть хостинги на ссд, которые не ограничивают Ваши ресурсы. При такой посещаемости, говорить о какой-то нагрузке - смешно.
Хотя, можно пойти следующим путем - начать кешировать запросы к базе и использовать объектное кеширование. Поставьте em object cache плагин, а также APC menu object cache. Включите обязательно apc.so в настройках php.