О кэшировании в Web

День добрый, дражайший читатель.

Вообще, я не имею уж очень большого опыта в работе с высоконагруженными системами. Обычно проекты, которые мне доводилось делать, были рассчитаны на посещаемость в 20000 человек в сутки. Ну или около того. Однако, однако… Программисты народ странный. Мы иногда делаем нечто «на будущее». Ну вдруг потребуется. Но вначале немного теории. Как строится высоконагруженная система? Основной её компонент — это балансировщик нагрузки. Фактически он просто обеспечивает обработку запроса пользователя одним из нескольких back-end’ов. Например один балансирощик (и лично мне доводилось слышать, что в его роли может выступать например nginx), раскидывает запросы по нескольким PHP-сборщикам (или бросается смотреть в кэш — нет ли уже того, что требуется). Те, соответственно формируют контент, и отдают его обратно. Это очень упрощённо, прямо скажем. Потому что я всё-таки не администратор веб-серверов, и всех тонкостей не знаю.

Так вот, это я к тому, что кэширование — один из действенных способов снижения нагрузки. Зачем выполнять кучу кода для формирования HTML-контента, если такая работа уже была сделана ранее, и с тех пор ничего не поменялось? Правильно, незачем. Так не логичнее ли сохранить страницу в кэш, и отдавать её каждый раз быстро и без мучений? Логичнее, все так и делают. И вот тут есть выбор — где размещать кэш. Существует много вариантов, но если свести к основным, это либо жёсткий диск, либо оперативная память. Чувствуете разницу? Скорость обращения к жёсткому диску в разы ниже, чем к оперативке, но при этом кэширование на жёстком диске подходит практически для любого хостинга, в том числе и виртуального. Однако важно понимать, что высоконагруженные проекты никогда не размещаются на виртуальном хосте. Его мощностей и возможностей просто не хватит для обработки такого потока данных. Потому для просто посещаемых проектов это минимум VPS. А для проектов с высокой нагрузкой необходимо строить распределённую систему с балансировкой, отдельным сервером для БД, для кэшировщика, для контент-сборщиков и так далее. Это дорого, но как правило ресурс окупает подобные затраты.

Читать далее О кэшировании в Web

Оптимизация WordPress, W3 Total Cache и иже с ней

Здравствуй-здравствуй, дорогой читатель.

Тема оптимизации WordPress неоднократно и здорово муссировалась на разных блогах, форумах, порталах, и прочих, прочих. Да, WP работает медленно, в базовой комплектации, и сделать с этим что-либо довольно сложно. Дело осложняется хостером. Дело в том, что блоги как правило находятся на бюджетных хостингах, стоящих в районе 150 р/мес, и этот блог не исключение. Зачастую же, разные пособия говорят о том, как можно улучшить железо и хостинг, путём установки дополнительной памяти, установкой расширений для PHP, и прочего, прочего. Я решил описать более-менее доступные варианты, но не обойду и варианты более дорогие. Блог на wordpress, если им более или менее заниматься, начинает набирать популярность, посетителей становится всё больше и больше, и вы начинаете подумывать о том, что хостинг — ну например на такой каке как джино (где находится мой нынешний сайт) — может и не возрадоваться возросшей нагрузке, да и увеличить время отдачи страницы секунд так до 10-15. Это не есть хорошо, ага, особенно если учесть что нормальный пользователь шлёт сайт в пеший сексуальный поход после 4-5 секунд загрузки. Если обобщить, то есть несколько вариантов как улучшить ситуацию:

Читать далее Оптимизация WordPress, W3 Total Cache и иже с ней