Блог #кеш

Чешская Швейцария и немного Дрездена. Паутина
Перу и Боливия. Зима-весна 2011. Дорога смерти, обрыв
Перу и Боливия. Зима-весна 2011. Солончак Уюни
Март 2017. Берлин — Роттердам — Дюссельдорф. Яблоко-глобус на стене дома в Берлине
Осень. %!s(<nil>)
Весна 2012. Германия — Франция — Италия. На побережье
Киев, лето 2009. Тут мы жили
Лавандовые поля. %!s(<nil>)
Исландия 2023. Водопад Сельфосс
Мальта, март 2014. Рыжий хозяин Мдины
Байкал, остров Ольхон, Хужир. Март 2018. Лёд
Новый год 2008 (Норвегия, Швеция, Дания). Норвегия, Нордсетер
Перу и Боливия. Зима-весна 2011. Куско, рынок
Корфу 2023.
Байкал, остров Ольхон, Хужир. Март 2018. Ольхон
Весна 2012. Германия — Франция — Италия. Город Эрки
Тайланд, Индонезия, Сингапур (зима 2010). В Сингапурском зоопарке. Попугай
Стамбул 2024. %!s(<nil>)
Мальта, март 2014. Я
Перу и Боливия. Зима-весна 2011. Дорога смерти, у пропасти
Март 2017. Берлин — Роттердам — Дюссельдорф. Дюссельдорф
Чешская Швейцария и немного Дрездена. Корни
Осень. %!s(<nil>)
Март 2017. Берлин — Роттердам — Дюссельдорф. Саморез
Тайланд, Индонезия, Сингапур (зима 2010). Собака
Тайланд, Индонезия, Сингапур (зима 2010). Боробудур
Берлин, Люббенау, Потсдам. Май 2018. Бюст в Потсдаме
Весна 2012. Германия — Франция — Италия. Джек Воробей
Байкал, остров Ольхон, Хужир. Март 2018. Восход на мысе Бурхан (ir)
Весна 2012. Германия — Франция — Италия. Лувр
Лето 2008 (Куба). Саньтяго де Куба

Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish

Публикую текст своего доклада для Друпалконфа, который прошел 4 июня 2012 года в Москве. Хочу акцентировать внимание на том, что этот текст не адаптирован под блогпост и публикуется в том виде, в котором я рассказывал его на конференции.

Введение

В текущем Drupal 6 проекте, над которым я работаю последние 2 года, в пике мы отдаем до 2 млн просмотров страниц в день и забиваем полностью наш 200-мегабитный интернет-канал. Судя по отчетам нашей системы мониторинга с текущей архитектурой и железом (6 серверов: 2 фронтэнда с nginx, 2 бэкенда с Varnish + Apache + Drupal и 2 MySQL-сервера с master-slave репликацией) мы можем выдерживать втрое большую нагрузку, если решим вопрос с каналом.

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

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

Основная идея доклада в том, что на контеных сайтах (речь идет о блогах, интернет-магазинах, новостных сайтах, а не веб-сервисах типа поисковых систем) большинство пользователей видят то же содержимое страниц, что и все другие посетители это сайта, поэтому умело закешированные данные могут значительно снизить нагрузку на веб-сервер и базу данных и, как следствие, увеличить скорость отдачи контента, и при этом не навредить сайту, так как, например, для новостного сайта кеш страниц на 1 час совершенно неприемлем.

Читать дальше ➠