Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
13 Декабря 2007 в 12:13

На вершине дышать тяжелее

0 2557

WordPress – один из самых распространенных движков для блога. Прост в настройке и инсталляции, удобен в использовании, легко расширяем за счет плагинов. Именно поэтому большинство standalone-блогов работают на нем.
Однако самый главный недостаток WordPress – это очевидные проблемы с производительностью даже при не самых солидных нагрузках, таких как высокая посещаемость на блоге (свыше нескольких тысяч уникальных посетителей в сутки) и, в особенности, его функционирование при внезапном наплыве большого числа пользователей на блог в одно время.
Такой прирост пользователей может случиться, например, при цитировании некоторого поста на блоге другими сайтами с большой аудиторией посетителей, но особенно часто это происходит, когда один из постов на блоге выходит на главную страницу (достигает топа) социальных новостных сервисов типа DIGG.
Хотелось бы заметить, что в случае достижении топа дигга WordPress не просто испытывает проблемы с производительностью, а совершенно намертво “встает” через 3-4 минуты топа.

Постараемся кратко познакомить с рекомендациями, чтобы предотвратить такие нежданные выходы из строя.

Для начала заглянем, что говорят об этом на официальном сайте WordPress. Как оказалось, там есть специальный раздел WordPress Optimization с весьма полезными ссылками на рекомендации по оптимизации WordPress. Но он далеко не полон. Основываясь на полученной из этого и других источников информации, а также используя собственный опыт, перечислю основные моменты по оптимизации WordPress под топы социальных сетей:

1)Хостинг – выделенный сервер или VPS (Virtual Private Server). Выделенный сервер подразумевает бОльшую свободу действий.

2)Интернет-канал к хостингу – 100 мегабит. В некоторых случаях возможно использование 10-мегабитного канала (при минимальном использовании графики на сервере).

3)Подумайте о переносе картинок в наполненном графикой популярном посте на отдельный сервер или хостинг. Можно использовать мощности бесплатных сервисов – blogspot или flickr и разместить изображения там.

4)Оптимизация работы плагинов под WordPress. Для начала не стоит слишком злоупотреблять разнообразыми плагинами. Везде, где можно, пытаться использовать решение, переведенное на статику (прописывание статических блоков HTML).
Пример: использования плагина similar posts (отображает ссылки на схожие посты). Если вы знаете, что некий определенный пост на блоге может заполучить топ в социальной сети, то лучше не использовать этот плагин, а частично эмулировать: прописать ссылки на similar posts (похожие посты) статически в HTML.

5)Установка кеш-плагинов, ускоряющих загрузку страниц и обработку php-файлов. Один из самых популярных - кеш-плагин WP-Cache 2. Недавно появился еще один многообещающий кеш-плагин WP Super Cache. Последний имеет некоторые характерные отличия. В то время как WP-Cache 2 использует PHP для обслуживания закешированных файлов, WP Super Cache обходится без помощи PHP – создавая статические файлы html, которые в свою очередь загружаются без единой строчки php-кода.

6)Имеет смысл включить gzip компрессию (требование – не жесткое). Однако, при наличии работающего плагина WP-Cache 2 встроенная компрессия работать не будет. Решение – использование Apache модуля mod_deflate. Данный модуль позволяет сжимать данные, отправляемые сервером клиенту.

7)Оптимизация работы с MySQL – один из самых важных пунктов. При стандартной установке MySQL использует минимальную с точки зрения загрузки конфигурацию. Необходимо изменить некоторые значения в конфигурационном файле MySQL. для выделения большего количества памяти, буфера, кеша и пр. Основные рекомендуемые настройки для файла my.cnf:

key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M


Особенное внимание уделите параметру max_connections в файле my.cnf. Увеличьте его значение, иначе проблема “too many connections” настигнет вас очень быстро. Менее важные настройки можно найти по ссылкам в конце статьи.

8)Можно использовать APCтюнинг PHP. Увеличивает скорость работы PHP благодаря кешированию скомпилированных php-файлов WordPress. Альтернативным решением может выступить использование eAccelerator с PHP Zend Optimizer, позволяющее уменьшить загрузку на процессор и улучшить производительность (Особенно актуально для VPS-хостинга). В целом, этот пункт не выступает обязательным.

9)Небольшая оптимизация Apache. Она также необходима, поскольку конфигурация Apache по умолчанию не рассчитана на большие нагрузки (поднять значение MaxClients в конфигурационном файле и другие). Также нестрогая рекомендация, но выброчно применять некоторые пункты вполне допустимо.

10)Имеет смысл отказаться от капчи в комментариях на момент ожидания большого потока посетителей. Здесь решение можно разнообазить, например, - использование упрощенной капчи (не графической).

11) И напоследок – неплохо иметь под рукой “священную кнопоку” “перезагрузить сервер”, если не один из пунктов не помогает или вы где-то допустили ошибку. Помните, во время топа в социальных сетях у вас есть в среднем лишь около 5-10 минут, чтобы решить внезапную проблему с загрузкой сайта; по прошествии этого времени модераторы социальных новостных сайтов обычно “снимают новость” с главной страницы.

Материалы по теме:


5 Golden Tips For WordPress Performance Optimization / Slashdot-Digg Protection
How To Increase Your WordPress Site Performance (Without Losing Functionality) by 10 Times
DiggProof your WordpressGuide To Optimizing WordPress Servers
Compressing php output with wp-cache2 WordPress Plugin

0 комментариев
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.

    Отправьте отзыв!
    X | Закрыть