Ускоряем работу блога и навигацию по «админке» WordPress

Что я сделал чтобы ускорить в несколько раз работу блога:

  1. Проапгрейдил сервер: заменил процессор celeron600 на pentium1000, увеличил память с 192мб до 512мб
  2. Установил русскую сборку wordpress maxsite.org
  3. Включил встроенное кэширование блога (плагин wp-cache 2 почему то показал меньшую эффективность, хотя пробовать буду и дальше разные варианты)
  4. Включил использование кэша для плагина simple tagging (поддерживается в версии 1.6.8.1 и выше)
  5. Установил php ускоритель (php-eaccelerator Release-0.9.5.2)
  6. Прочистил от мусора таблицу options в базе блога по инструкции на maxsite.org
  7. Прописал все используемые домены на сервере в файле hosts на внутренний IP сервера (на хостинге вам вряд ли это пропишут, к сожалению)
  8. С помощью сервиса проверки скорости загрузки сайта обнаружил и устранил баги в теме и плагинах (исправил ссылки на несуществующие файлы и функции, которые грузили лишний раз сервер вызовом страницы 404)
  9. Установил плагин удобного меню админки, который не только добавляет удобство в работе, но и реально ускоряет работу — можете проверить
  10. Установил плагин Панель администрирования wordpress в стиле Mac OS X Tiger, который делает админку намного приятнее и как ни странно тоже положительно влияет на скорость работы.
  11. Прописал локальную картинку для аватаров сервиса gravatar, если у пользователя нет своей картинки
  12. Скопировал себе все флаги для плагина ip2nation и изменил пути с зарубежных серверов на свой.

Все это в совокупности дало такие результаты:

Раньше при забитом канале до сервера и глюках DNS сервера провайдера , а сервер у меня работает на АДСЛ канале со скоростью 128-256 кбит входящей скорости и 2200 кбит исходящей, любой запрос к любой странице создавал лишние запросы к DNS серверу (устранилось прописыванием доменов в hosts) — это дало неожиданно приятный результат — время генерации страницы снизилось на 0,2-0,5секунд в среднем.

Установка php ускорителя дала выигрыш раза в 3 как минимум и не только для блога. Достаточно тормозная галерея gallery2 тоже стала шевелиться намного быстрее. В настройках ускорителя надо отключаться сжатие в настройках — оно только сильно мешает

Включение встроенного кэширования дало выигрыш тоже раза в 2 в среднем. Все кэширование в целом позволило избавиться от падения и пожирания памяти apache при перегрузках.

Плагины для админки ускоряют работу также очень сильно — т.к. по выпадающим меню перемещаться гораздо быстрее, чем переходить в каждый раздел и уже там открывать нужный пункт (лишний раз только грузится ненужная страница)

Замена процессора и памяти дали также огромный выигрыш, т.к. при работе wordpress используется достаточно много ресурсов php и mysql — по данным утилиты top в линуксе.

Итоги

Раньше в лучшем случае страница генерировалась от 1 до 3 секунд, при 5 посетителях уже было по 5-7 секунд в среднем, а при просаживании канала (днс запросы тупили) вообще доходило до 15 секунд. Админка же до оптимизации работала быстро только при всех отключенных плагинах, и в среднем генерировала свои страницы за 1-5секунд.

После оптимизации стало (по показаниям встроенных счетчиков времени исполнения запросов):

  • генерация страницы блога в среднем 0.5 — 0.9 секунды.
  • генерация страницы админки в среднем 0.4 секунды, максимум 1 секунда (на «голом» блоге (с отключением всех плагинов) вообще 0.2 секунды в среднем)

Связанные записи

18 комментариев на запись “Ускоряем работу блога и навигацию по «админке» WordPress”

  1. cross 5 октября 2007 в 15:50

    Хорошо иметь свой выделенный сервак.

    Не все пункты можно исправить используя эту статью для ускорения работы сервера.

  2. kn 6 октября 2007 в 19:16

    По «wp-cache 2» если будут новости — не забудь сообщить. :wink:

  3. Lecactus 9 февраля 2008 в 1:32

    некоторое время назад делал апгрейд софта на сервере и что то видимо лишнего удалил , т.к. после пересборки акселератора под новую версию php почему то начинал тормозить сервер после нескольких часов работы и отдавать страницы блогов то быстро, то задумываясь по 20-60секунд. при этом росло и потребление памяти. Поэтому примерно раз в сутки я его просто перезапускал. и вот позавчера обнаружил что почему то отсутствует вообще папка кэша /tmp/eaccelerator, которую я создавал для временных файлов акселератора. Сразу после создания папки и перезапуска апача нагрузка на сервер резко снизилась и освободилось почти 150мб оперативки….

  4. sunnybear 15 марта 2008 в 19:00

    Кроме pingdom tools есть еще аналогичный русский инструмент

  5. Ай Пи Мани 28 сентября 2008 в 0:52

    А можно применить эти советы к платному хостингу?
    Ускорение работы блога не отразится на используемых ресурсах?

  6. Lecactus 28 сентября 2008 в 10:30

    @Ай Пи Мани: почитайте лучше это http://lecactus.ru/2008/09/27/2819/ еще .. все это можно делать только на vds или физическом своем сервере. потребление ресурсов УМЕНЬШИТСЯ

  7. Alexpts 12 октября 2008 в 12:16

    Как деньги будут тоже надо попробывать купить виртуальный сервак, а то щас только одни огарчения… Там все таки сам себе хозяин буду.

  8. Alexpts 12 октября 2008 в 12:18

    А как вы сделали, что ваш коммент выделяется рамочкой? Можете рассказать как отдельный стиль сделать для админа или какого-либо пользователя?

  9. Lecactus 12 октября 2008 в 12:39

    А как вы сделали, что ваш коммент выделяется рамочкой? Можете рассказать как отдельный стиль сделать для админа или какого-либо пользователя?

    #content ol.commentlist li.author
    {
    border:#4c6bf6 1px dashed;
    padding:5px;
    color: #111;

    ну естественно в вашей теме может быть немного по другому строка начинаться
    PS для это даже спецплагин был и на форуме вопрос был вроде рассмотрен

  10. Сергей М. 26 ноября 2008 в 3:18

    Можно и без плагина, таки зачем он — http://iskariot.ru/development/comments-usability-2/#auth (надеюсь, автор не против ссылки). Если это, конечно, не спаммер спрашивает :)

  11. xsid 6 февраля 2009 в 10:00

    Здравствуйте!

    Я неявляюсь веб-программистом. В процессе работы с WordPress уменя возникла проблема — большое время доступа к сайту. Я установил плагин WP Tuner и выяснил, что 98% времени отклика сайта на запрос занимает функция widgets_init, а это около 10-12 секунд. Остальные функции срабатывают очень быстро. Отсюда и возник вопрос, что делать, что бы ускорить работу WP (установлна версия 2.6.5, перешел на не с 2.6.2, не помогло…), а именно функции widgets_init? Поиск в Гугле ничего конкретного не дал… Я прям и не знаю что делать… :(

  12. Lecactus 6 февраля 2009 в 14:02

    xsid, виджетами пользуетесь?

  13. xsid 6 февраля 2009 в 14:10

    xsid, виджетами пользуетесь?

    да. некоторыми.

  14. Дедушка 17 февраля 2009 в 16:20

    А подскажите, как заменить картинки с gravatar на локальные?

  15. Lecactus 17 февраля 2009 в 22:48

    Дедушка,

    <?php
    echo get_avatar( $id_or_email, $size = '96', $default = '<path_to_url>' );
    ?>

    The parameters are:
    id_or_email (required): Author’s User ID (an integer or string), an E-mail Address (a string) or the comment object from the comment loop. Note: with most comment templates you can use $comment here, in order to display the gravatar of the commenter. In other templates, you can use get_the_author_id() here.
    size (optional): Avatar display size (max is 512).
    default (optional): Absolute location of the default avatar to use (used when the person has no email address associated with them). If this is left blank then the gravatar you see here will be used as the default avatar.

    http://codex.wordpress.org/Using_Gravatars из кодекса. короче говоря там где path_to_url — надо прописать путь к картинке на своем сервере — картинке которая будет показываться если у автора комента нет граватара (чтобы не показывать разные монстрИД и дефолтные картинки ВП)

  16. Дедушка 17 февраля 2009 в 23:45

    $comment я заменил на $id_or_email, тогда заработало

    Но все равно получается адрес картинки вида:

    > gravatar . com/avatar/a476ca606210536da11afe7bff5cb7e2?s=32&d=http%3A%2F%2Fdedushka . org%2Fimg%2Favatar.gif%3Fs%3D32&r=G

    т.е. всё равно идёт обращение на сайт gravatar.

  17. Никитка 30 октября 2009 в 21:34

    Спасибо

  18. Алексей 11 января 2013 в 20:29

    Спасибо за пост! Поэкспериментирую…