Боремся с нагрузкой WordPress на сервер + MaxCache
В октябре я уже писал, что хостинги совершенно не тянут нагрузку, которую “обеспечивают” хорошо посещаемые сайты.
Например, на FastVPS сейчас крутится всего 3 сайта с общей посещалкой в сутки 10000 хостов в сутки, в пиковые моменты онлайн бывает до 300 человек одновременно. И в эти самые моменты сервак “глохнет” – перезагрузка не помогает, как и танцы с бубном… Все 1200 Мб оперативки заняты!
Та же история и с обычными хостингами – стоит “онлайн” на сайтах собраться 150-200 человек – тушите свет, на сайт не зайдешь.
Конечно, если бы сайты были на чистом HTML, то никто бы и не жаловался – серваки шустренько бегали бы и с большей посещалкой. Но кто сейчас такие сайты-то делает, в 2012 году? :) Все наши сайты бегают на WordPress и ни для кого не секрет, что этот монстр при большой посещаемости нещадно жрет системные ресурсы.
Сайты не работают = мы теряем деньги. Как обезопасить себя от ущерба?
1. Арендовать дорогой сервер. Я изучал эту тему летом и понял, что дешевле 3500 в месяц нормальный выделенный сервер не найти. А 3500 – это слишком дорого, ведь сайтов в общей сумме не так много. Тем более, размещать все сайты в одном месте – большой риск. Сейчас сайты раскиданы по трем хостингам и не бывает такого, чтобы все были недоступны разом.
2. nginx. По запросу в службу поддержки. На FastVPS этот вопрос решается легко, а на shared хостингах (например, SWEB) его не включат даже по требованию.
3. MAXCACHE. Это главное средство по борьбе с нагрузкой, которую создает WP. Данный скрипт стоит 900 рублей, лицензия дается на 3 сайта. За подключение каждого последующего сайта – 60 рублей. Подробное описание здесь
Данный скрипт кэширует WordPress и создает html версии страничек сайта. После инсталляции скрипта (достаточно закачать файлы на сервер и создать 1 папку), сразу визуально можно будет заметить, как быстро загружается главная после ее повторного открытия. Задержку при загрузке могут вызывать только блоки контекстной рекламы, тизерки и т.п. (да, со всем этим он совместим).
Лично у меня при использовании MaxCache возникли 2 проблемы, которые удалось решить.
Не исключено, что эти проблемы могут появиться у Вас, так что мотайте на ус.
Проблема 1. При использовании плагина Platinum SEO не переписываются TITLE страниц так, как указано в настройках.
Из-за этой проблемы мне пришлось на пару месяцев отказаться от использования MaxCache, что сразу вылилось в письма хостера о превышении нагрузки. Но зато тайтлы были нормальные :)
Решение проблемы именно с Platinum SEO приведено здесь. Я же не стал заморачиваться с правками кода и просто начал использовать другой плагин – Ultimate SEO. По функционалу он не уступает, а даже превосходит Платинум, не глючит и отлично работает в связке с MaxCache.
Проблема 2. После установки скрипта на страницах сайта выводятся ошибки PHP.
Проблема была на сайте, который висит на FastVPS. У других сайтов эта проблема не возникала, значит дело в теме или движке. После интенсивного гуглинга, были перепробованы несколько вариантов, но ошибка не исчезала
Warning: fread() [function.fread]: Length parameter must be greater than 0 in /var/www/XXX/data/www/XXX/maxsite-cache.php(1) : eval()’d code on line 1
По сути, это не ошибка, а предупреждение. После переписки с автором скрипта и службой поддержки FastVPS, единственным вариантом оказалось убрать вывод ошибок и предупреждений на уровне сервера. Это делается в htaccess с помощью директивы
php_flag display_errors off
Плагин отлично работает, а ошибки не выводятся на страницах – что и требовалось. К сожалению, локализовать и устранить источник ошибки не удалось.
Сейчас все сайты шустро бегают, открываются за секунды и не перегружают сервак.



Мой хостинг-провайдер пару раз в неделю выдает ошибку 502 и 503. Это связано как-нибудь с WP?
17.01.2012 в 11:59На хетзере мона арендовать дедик от 80 евросов с 8 гигами на борту- сам по себе хостинг убер- единственно что берет бобло за сетуп, в размере 150, но учитывая что они теньге не списывают полтора месяца от начала общения с ними, то терпибельно. Хотя эта немецкая нерасторопность так и подмывает русского человека натянуть их на кукан и соскочить по прошествии 2 месяцев.
17.01.2012 в 12:11Денис, каждый раз может быть разная причина.
Добрый Дядя, а что там за ПО? ISP или тупой DirectAdmin? NS дают или свои делать? IP-шек сколько дают?
17.01.2012 в 12:37nginx+php-fpm+eaccelerator+wp-super-cache вот что вам поможет. 10000 это ничего для данной схемы, даже на слабом хостинге.
вот попробуйте: http://wordpress.org/support/topic/nginx-php-fpm-php-apc-wordpress-multisite-subdirectory-wp-super-cache
17.01.2012 в 13:08>php_flag display_errors off
Жесть. А ничего, что теперь не увидите ошибок в других скриптах (плагинах, например)? Судя по сообщению, ошибка в fread, т.е. в коде MAXCACHE.
17.01.2012 в 13:20aktuba, а другого выбора нет. Чтобы сайт работал и не грузил хостинг, нужен MaxCache. Автор скрипта говорит, что дело не в скрипте, а в шаблоне. Верстальщик говорил, что в теме нечему вызывать такую ошибку. Замкнутый круг
17.01.2012 в 13:22Ну не знаю. 1000 пользователей в сутки вполне себе живут на приличных хостингах даже без кеширования.
17.01.2012 в 13:49При 5.000 в сутки с кешированием на свебе у меня тоже вполне себе фурычит. Да, номинально я превышаю допустимую нагрузку раза в полтора. Но от саппорта никаких сообщений по этому поводу не получал. :)
Рекомендую hostgator.ru – это настоящее американское качество. Все анлим, причем реальный анлим. Держу там несколько сайтов, у одного посещаемость больше 40000 хостов. Если региться по купону infinitycoupon то первый месяц обойдется всего в 1 цент, вполне достаточно что бы потестить.
17.01.2012 в 14:09У меня sweb лежал при 5 К посетителей… по запросу тоже не расширили возможности… сезонный трафик пролетел как фанера. Стоял суперкеш, гиперкеш, не помогло. Автор, советуете покупать МаксКеш или хостинг менять? Не хотелось бы, чтобы подобное повторилось при дальнейших всплесках!
17.01.2012 в 21:43WebSurfer, у меня точно также пролетел новогодний трафик без MaxCache. По своему опыту – FastVPS с MaxCache на OVZ-6 потянет сайты на WP на 15K в сутки
17.01.2012 в 22:06Мне конечно пока рано парится насчет перегрузки сервака, но я уже сразу думаю, что придется рано или поздно покупать MAXCACHE.
Поэтому не ставил Platinum SEO, порылся в плагинах и нашел Yoast WordPress SEO, мне кажется – достойная замена
17.01.2012 в 23:44а причем здесь заголовок?
18.01.2012 в 03:33ябы назвал вот так: Нагрузка wordpress — MAXCACHE, Platinum SEO, Ultimate SEO
Linode.com 1024мб рам + nginx+ php-fpm + opc + wordpress + totalcache = 40k держит спокойно.
18.01.2012 в 05:05кеширую целиком страницы, в файловый кеш, до передачи запроса в ядро вордпресса. Можете затестить, нагнув блоговый VDS ab тестом =)
18.01.2012 в 20:09имхо оптимально – т.к. если запрос ушёл в ядро, то превед =)
ну и xcache, без него никак, родного.
Доброго вечера). Почитай блог Владимира http://blog.sjinks.pro/ Он сравнивал эффективность работы различных плагинов кеширования (в том числе и своего).
19.01.2012 в 00:47В комментариях произошла интересная дискуссия с Максом по поводу работы MaxCache.
nginx+ php-fpm
+1
loadimpact.com для теста.
19.01.2012 в 14:56Вопрос к использующим связку nginx+ php-fpm. Как нормально настроить rewrite и ЧПУ ? У меня так и не получилось настроить nginx Compatibility plugin
19.01.2012 в 21:36Не знаю, обычный Simple Cache вполне справляется со своими задачами и не конфликтует с остальными плагинами.
31.01.2012 в 22:33Так что не вижу особого смысла покупать плагин MaxCache