Оптимизация VPS для WordPress 3.0

Вчера я писал о завершении переезда на новые мощности. Рад был как ребёнок, однако была небольшая проблемка, которая вскоре стала доставать... LA (load average)  постоянно больше 4-х, а скорость загрузки страницы около 16 секунд (спасибо Pingdom Tools), при этом на сайте было около 15 посетителей. Сейчас это средний показатель между прочим. Итак, перейдём непосредственно к настройке

Приступим-с. Начать нужно с того, что сам по себе вордпресс ресурсоёмкий. То тысячу файлов заинклюдить, то обновление проверить при каждом действии. Всё это очень сильно грузит систему. За последние 2 дня я перекопал тонну чтива, в том числе и зарубежного, про оптимизацию вордпресса и сервера, на котором он расположен.

Начните с Apache. По дефолту он подключает много модулей, которые вам скорее всего не понадобятся. Поэтому находите в конфиге апача примерно такие строки:

#LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_default_module modules/mod_authz_default.so

Решётка перед строкой обозначает комментарий. Проконсультируйтесь с вашим администратором, либо со знающим человеком, какие модули можно отключить, а какие оставить. На вскидку, я оставил из 50 модулей только 15.

Установите nginx. Администраторы серверов хвалят его за быструю отдачу статики. В моём случае это картинки, видео, css,  js. Администраторы serverside.su посоветовали вообще перейти на голый nginx и тогда сайт всецело летал был :)

Используйте MyIsam в MySQL таблицах баз данных. Этот тип таблиц наиболее быстр за счёт того, что не поддерживает ряда функций, которые поддерживает InnoDB.

Установите eAccelerator. Один из основных моментов, я не шучу. Дело в том, что wordpress подключает много файлов, и делает это каждый раз, когда ты открываешь какую-либо страницу. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта.

Настройте свой WordPress правильно

Обязательно отключите проверку на обновления. Если программно это сделать не получается, то замените файл wp-includes/update.php на пустой php файл. Да это выключит все возможности проверить обновления плагинов, но это того стоит. Для того чтобы оставить возможность удобного обновления, сделайте бекап старого update.php, который будете заливать для обслуживания блога, скажем 1 раз в месяц.

Удалите все ненужные и неиспользуемые плагины.  Я был в шоке, когда узнал, что если плагин деактивирован, wordpress всёравно подключает его файлы. Сделайте на сервере папку «plugins_old» и скопируйте туда все неиспользуемые плагины.

Настройте правильно права и группы на файлы. Как показала практика, лучше сделать каждому своё. Т.е. не разбрасываться правами «777» на папки, которые просит вордпресс. Возможно, будет достаточно дать ему права веб-сервера, чтобы всё работало и при этом права остались «755».

Используйте плагины кэширования. В данный момент я использую 3 плагина для создания кэша:

  • DB cache reloaded — создание кэша запросов к базе данных.
  • Wp super cache — для генерации статических страниц.
  • Wp file cache — для создания кэша виджетов, дополнительных запросов и другого.

Все эти модули работают по разному, убедится в этом вы можете самостоятельно установив их в свой блог. В данный момент в этом блоге работают 33 плагина и всё работает распрекрасно. Pingdom даже загрузил странички за 1.6 секунды.

Хочу выразить огромную благодарность админам serverside.su за человеческий саппорт и грамотную настройку сервера.

Обновлено: забыл указать, что посещения 1.2к уников в сутки, в среднем 15 человек на сайте. Потребляемая мощность 490 мб оперативной памяти.  Процессор почти свободен. текущая LA: load average: 0.07, 0.24, 0.67

Обновлено 2: ЧПУ — смерть как грузят сервер. Выключайте их, а по возможности даже не начинайте пользоваться ими. Толк их для SEO остаётся не понятным, но нагрузку они дают хорошую.

Рекомендую прочитать:

About arti

Php-программист со стажем в 5 лет. Люблю путешествовать и знакомиться с новыми людьми. Женат на самой красивой и лучшей девушке в мире: Дашеньке.

, , , , , , , , , , , , , , , , , , , , , ,

  • http://gogomel.net Гомельский реалист

    В отношении собственно настрек Вордпресса, я так понимаю актуально и для виртуального хостинга?