Мотоциклы, их тест драйвы и обзоры, ремонт и тюнинг

Тест- драйвы, обзоры
и ремонт мотоциклов

Сайтоводство — процесс вроде бы простой на первый взгляд, но временами доставляет неожиданные проблемы. К примеру, с самого начала этой недели идет невидимая битва за скорость работы сайта. Посещаемость сайта увеличилась, чему я с одной стороны рад, но с другой — получил письмо от хостера, в котором сообщается, что сайт грузит процессор сервера в среднем на 15%. Чтобы привлечь мое внимание к этой проблеме, какой-то суровый сисадмин даже выключил ту часть сайта, которая относится к мотоциклам. В связи с этим появились два варианта решения проблемы — малодушно купить бизнес хостинг план или оптимизировать производительность сайта, который основан на програмном обеспечении wordpress с открытым исходным кодом. Надеюсь, что приведенная ниже информация будет полезна тем читателям, у которых есть собственные сайты, построенные на аналогичном программном коде. 

WordPress с точки зрения работы с базой данных, в которой он хранит статьи и разнообразную служебную информацию, УЖАСЕН. А все из-за его гибкой архитектуры, которая позволяет лепить из wordpress все что угодно. Однако, в конечном результате на показ одной страницы приходится выполнение от 30 до 200 запросов к базе данных!!! Один из самых любимых запросов — получить значение какой-нибудь опции, сохраненной в базе данных. В результате, как только посещаемость сайта становится более-менее заметной, сайт начинает тормозить. Конечно хостер, который продал недорогой тарифный план, держит на сервере много сайтов. Поэтому, когда один из них начинает тормозить работу всего сервера, возникают вопросы. 🙂 Что делать? Тут возможны несколько вариантов, отсортированных по степени сложности:

  • Удалить ненужные плагины. Особенно те, которые что-то обновляют в базе при каждой загрузке страницы. Или те, которые показывают статистику, которую вычисляют при каждой загрузке страницы.
  • Установить плагин кэширования WP Cache или WP Super Cache. Последний лучше, но сложнее в установке.
  • Пройтись по коду wordpress, устранить явные глупости в SQL запросах, кэшировать вывод функций для показа календаря, рубрик, последних комментариев и т.д. Построить более оптимальные индексы для таблиц базы данных. Но это уже работа, требующая специфических знаний. Более просто регулярно обновлять версию wordpress, есть надежда, что известные проблемы исправят разработчики.

Кстати, если кто из постоянных читателей заметил, что скорость загрузки сайта улучшилась — отпишитесь пожалуйста в комментариях. Хочется знать, заметны ли результаты оптимизации? 🙂


Автор:
 

8 ответов в “Не про мотоциклы, а про сайты в интернете”

  1. v_scherbina ответил:

    По ощущениям стало быстрее на 15%. Я почему-то думал что проблема не в производительности сервера, а в канале сервера, т.к. преславутый городок LA HABRA похоже далекова-то отсюда 🙂

  2. Алексей ответил:

    С каналом вроде все нормально, вчера 4 Гб резервных копий качались со средней скоростью 400 кбайт/с. Зато когда я включил трассировку обращений вордпресса к базе, то ужаснулся. WP Cache, который работал ранее, кешировал вывод статей, но для укладывания сервера хватало и запросов, которые выполняются для построения сайдбара. 🙂

  3. Алексей ответил:

    Вот, с кэшем работают даже анонимные комментарии! 🙂 И «Последние комментарии» обновляются один раз в 10 минут. Похоже, что все работает, как и задумывалось. Теперь осталось закэшировать вывод мелких картинок на главной странице и на этом успокоиться. 🙂

  4. v_scherbina ответил:

    Оптимизация штука мощная … Если найдешь еще профайлер заточный под php, mysql что бы показывал все «bottleneck» и рисовал все в графиках, то будет еще легче оптимизировать 🙂

  5. Sasha ответил:

    С учетом того, что использую модем — производительность повысилась раза в два.

  6. Алексей ответил:

    Sasha, спасибо! Значит компрессия траффика тоже работает, причем неплохо.

  7. fanatic ответил:

    а еще перед покупкой хостинга полезно почитать TOS на предмет как раз вот этой допустимой нагрузки.. Сколько траффика генерирует сайт? Сколько уников?

    Плагины кеширования вордпресса (типа wp_supercache и тп) не кешируют sql-запросы виджетов. Можешь сам с wp_tune глянуть, даже при загрузке кешированной страницы все запросы виджетов к базе отрабатываются на ура.
    Но есть плагин который кеширует запросы к базе самих виджетов 😉 Причем на каждый виждет можно задавать свои настройки.
    Рекомендую.
    Я после этого всякие «супер-кэши» вообще поотключал, бо оказалось что основную нагрузку дают отображения меню, категорий, последних комментариев и тому подобного из сайдбаров.

  8. Алексей ответил:

    [quote comment=»2636″]а еще перед покупкой хостинга полезно почитать TOS на предмет как раз вот этой допустимой нагрузки.. Сколько траффика генерирует сайт? Сколько уников?
    [/quote]
    Да там как всегда мутно все написано. Типа нагрузка не должна быть большая. 🙂 С начала месяца трансфер 38 Гб, количество посетителей на счетчике внизу, хотя у меня там на хостинге несколько сайтов крутятся.

    [quote comment=»2636″]Плагины кеширования вордпресса (типа wp_supercache и тп) не кешируют sql-запросы виджетов. Можешь сам с wp_tune глянуть, даже при загрузке кешированной страницы все запросы виджетов к базе отрабатываются на ура.
    [/quote]
    Это верно для WP Cache, более продвинутая версия умеет кэшировать страницу полностью и показывать ее потом через mod_rewrite.

    [quote comment=»2636″]Но есть плагин который кеширует запросы к базе самих виджетов 😉 Причем на каждый виждет можно задавать свои настройки.
    Рекомендую.
    [/quote]
    Ну что-то вроде этого я и сделал, правда у меня старая версия вордпресса, еще без виджетов.

    [quote comment=»2636″]
    Я после этого всякие «супер-кэши» вообще поотключал, бо оказалось что основную нагрузку дают отображения меню, категорий, последних комментариев и тому подобного из сайдбаров.[/quote]
    Это ты зря. 🙂

Оставить комментарий

Вам нужно войти, чтобы оставить комментарий.

Регистрация на мотофоруме обеспечит возможность оставлять сообщения на форуме и комментарии в блогах.