Современные решения ИТ задач и программной инженерии

Ускоряем высоко-нагруженный сайт кешированием

12.07.2015 в разделах ИнтернетБазы данныхс тегами cmsmysqlhelpcache
Ускоряем высоко-нагруженный сайт кешированием
Кеширование хорошее дело но его стоит применять с умом как любой инструмент. Кешированием можно как ускорить сайт так и замедлить, если очень перестараться. Что бы очень быстро поправить ситуацию по отклику сайта, нужен опыт. Не стоит кешировать все страницы сайта одним куском кода, это может привести к его частичной неработоспособности, если же сайт состоит не только из статики и нет другого выбора.

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

Нам нужно сделать кеширование сайта, но оставить его полностью работоспособным. Иногда это нужно сделать ну очень быстро, например в случае небольшой DDoS атаки на сайт. Можно сделать кеширование всех страниц сайта на небольшое время, например на 5 минут, а можно сделать кеширование на пару часов или даже дней но использовав например JavaScript и Ajax сделав сайт очень динамичным и отзывчивым.

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

В следующий раз рассмотрим практический пример, например для добавления простого кеширования для всего сайта на CMS Wordpress, что бы ускорить сайт в разы. CMS в таком случае не будет иметь значения, на практике это будет сразу понятно. Попытаемся сделать кеширование всех страниц сайта, например на 5-10 минут. Прирост скорости загрузки посещаемого сайта сразу будет виден а вот не очень посещаемого сайта, к сожалению почти нет.