Кэширование: поиск компромисса

Кэширование — самый больной вопрос, с которым сталкиваются все, от самых начинающих до бородатых гуру. Изучая механизм кэширования в WordPress, я пришел к выводу, что сейчас он далек от совершенства. Есть два принципиальных вида кэширования — статический кэш и динамических. И они — далеко не панацея от медлительности и прожорливости. Вот сейчас об этом и поговорим.

 

- Успешно действующее online casino — прекрасный способ развлечься и отличный способ выиграть приличную сумму. Если вы хладнокровный игрок, то это шанс проявить себя!
- Кто позаботится о братьях своих меньших, как ни человек? Мы вторглись в их жизнь, поэтому охрана животных — главная задача настоящего человека, любящего природу. Посетите сайт, посвященный этой проблеме. 

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

Примеры плагинов статического кэширования:

 

Так как WordPress — система динамическая, то от статического кэширования, встроенного в нее, отказались после версии 2.3. На смену статическому кэшированию пришло динамическое — то есть кэш хранится в памяти, и только на время формирования текущей страницы. Следующий запрос кэшируется по новой. Тут большую роль начинает играть количество обращений к базе данных. Так как большинство тем и плагинов не оптимизированы, то они нещадно эксплуатируют базу данных, постоянно туда обращаясь, при чем разные плагины и части кода темы могут выуживать одни и те же данные по нескольку раз за время формирования одной страницы. Внутренний кэш WordPress в нынешнем виде, как мне кажется, совершенно не учитывает эти обращения, поэтому он практически бесполезен. Загружая страницу блога, десятки плагинов терзают базу данных, выуживая по нескольку раз из нее одни и те же данные. Неоптимизированные темы формируют запросы к базе данных, которые нагружают ее не меньше неоптимизированных плагинов. В итоге скорость работы блога падает, а нагрузка на хостинг существенно возрастает. Хостеры начинают нервничать, отключать чересчур прожорливые блоги, блогеры начинают нервничать и менять хостеров, как перчатки, а иногда и переходят на более дорогие тарифные планы, по условиям которых для каждого блога выделяют отдельный виртуальный сервер с бо́льшими мощностями. Поначалу блог начинает дышать, но со временем, опять накопив большое количество посетителей, начинает тормозить. В этой ситуации могут помочь плагины динамического кэширования, которые кэшируют не файлы, а обращения к базе данных. То есть если из базы данных уже взяли какие-то данные, а очередной плагин их опять требует для своей работы, то он берет их не из базы, а из кэша. Но тут тоже не все однозначно. Да, количество обращений к базе данных снижается. Однако операций ввода-вывода не уменьшается, что приводит к превышению лимитов, установленных хостером. Казалось бы блог начинает работать быстрее, и даже комментарии работают почти правильно, но хостер все равно жалуется на прожорливость блога.

 

- Готовите к выпуску первый номер подпольной “Искры”? Собираетесь раскидывать листовки на вражеской территории? Тогда вам просто необходимы качественные полиграфические услуги, от печати листовок и газет до выпуска элитных глянцевых журналов.
- Вы думаете, что лидером может быть каждый? Ошибаетесь. Качества лидера — это тонкий сплав воли, ума, и характера. Узнайте, как стать лидером.

 

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

Несколько советов по оптимизации блога:

 

Я все это написал, чтобы показать, что мне не достаточно опыта, и я бы с удовольствием выслушал любые ваши советы по оптимизации блога. И поправьте меня, если я в чем-то не прав.

 

- Рядом с метро Павелецкая, в бизнес-центре класса B+ есть отличное помещение, которое сдает сам собственник. Экономьте свои деньги — обращайтесь напрямую: аренда офиса на дубининской улице 57.

Комментариев 3
  1. Буду ковырять блог. у меня гиперкеш отключен из-за комментариев :( нагрузка бешенная, будем пробовать способы все :)