Ответы пользователя по тегу Кэширование
  • Что делать в случае "холодного кэша" в час пик?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Работу с кешем нужно строить по 1 из 2 путей:

    1. Prime cache - ресурсоемкий запрос выполняется по установленному вами расписанию/событию и обновляет кеш, пользователь всегда получает данные только из кеша.

    2. Serve stale - выполнение ресурсоемкого запроса и обновление кеша идет параллельным процессом, в это время пользователи все еще получают предыдущие (пусть и менее актуальные) данные. Опять же, пользователь всегда получает данные только из кеша.
    Ответ написан
  • Wordpress: почему не работает адаптивная верстка с кэшированием?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Использовать плагины, которые поддерживают отдельные кеши для десктопа и мобильных устройств.
    Ответ написан
    8 комментариев
  • Какой плагин кеширования в Вордпрессе лучше других?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ох, опять эта тема :)

    Для начала могу сказать какой точно никогда, ни при каких обстоятельствах не использовать - W3 Total Cache. Это адище с большой буквы. Туда же все остальные плагины, которые пытаются быть "все-в-одном" и предоставлять 120 страниц конфигурации. В топку.

    Далее, давайте мухи отдельно и котлеты отдельно. Есть object cache - у него свои задачи. Есть fragment cache - у него свои. Есть full page cache - это отдельная кухня. Есть кеширование на уровне сервера (nginx fastcgi_cache), все тот же full page cache но "навыворот". А еще Nginx умеет разговаривать с Memcached напрямую. И даже если сравнивать решения, которые делают одно и то же (например, тот же full page cache), разница в "эффекте" на разных серверах и даже на разных сайтах на одном сервере будет. Часто - существенная. Плюс, есть кеширование на многих уровнях на самом сервере - файловая система, кеши БД и тд. И все эти настройки будут влиять на поведение плагинов кеширования. Часто - существенно. Кеширование на стороне клиента - отдельная кухня, начиная с server push, prefetch и тд, выдача поддерживаемых форматов (brotli/gzip, woff/woff2/ttf, webp/jpg/png и тому подобное).

    В общем, performance - это целый комплекс мер, решений и инструментов. Подходить к этому надо с умом и четким планом, полным пониманием всего процесса от инициации запроса клиентом и до... а нету точки Б, потому что там свои моменты.

    А еще надо понимать, что ваш медленный DNS может убить всю экономию на PHP runtime. Или криво установленный SSL-сертификат. Или кеширование SSL-сессий, некорректно настроенное под специфику трафика конкретного проекта. Или канал на выходе перегруженный. Или далеко не оптимальный конфиг пула PHP. Или вообще Apache. Или I/O wait зашкаливает.

    Грубо говоря, если вы надеетесь найти один волшебный плагин, который будете лепить сверху на каждый сайт и всегда получать супер-мега-быстрый сайт - вы не на то тратите свою энергию. А проводить сравнительные тесты нет смысла, потому что по сути их результаты могут иметь хоть какой-то смысл только когда вы подбираете под один конкретный сайт. Если вы проведете все те же тесты на другом сайте и на другом сервере - получите уже другие результаты.

    И еще. Силы надо тратить на то, чтобы динамический сайт был быстрым. То есть, без плагинов кеширования вообще. Если сайт у вас тупит, то попытка замаскировать это сверху плагином кеширования - не самое разумное решение. Временное - да, возможно. Но не решает проблему.
    Ответ написан
    Комментировать
  • Сильно ли сократится нагрузка/ответ от сервера при таком раскладе?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вариант 1: Вместо MySQL используйте Redis.
    Вариант 2: Продолжайте использовать MySQL, но добавьте кеш в Memcached / Redis.
    Ответ написан
    5 комментариев
  • The query cache is deprecated as of MySQL 5.7.20, что это значит и чего ждать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Query cache вообще штука весьма неоднозначная, и лучше всего query_cache_size устанавливать в 0. Поэтому, не велика потеря. Для тех, кто давно так делает, последствий никаких. Для тех же, кто на него полагался, предстоит немного чтения и ковыряния в коде.
    Ответ написан
    Комментировать
  • Кеширование результата работы PHP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    nginx fastcgi_cache
    Ответ написан
    Комментировать
  • Как лучше оптимизировать сервер для WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Убрать из связки Apache
    2. Установить крайний Nginx
    3. Установить к нему PHP 7 (FPM, естественно)
    4. Установить Memcached
    5. Заменить БД с MySQL На MariaDB 10
    6. Еще можно перейти с http на https, с использованием протокола HTTP/2 (сам по себе SSL отжирает кусочек времени запроса, но супербыстрый протокол компенсирует)

    Даже со стандартными конфигами будет заметно шустрее при использовании заметно меньшего количества ресурсов. Дальнейшая работа - это уже тюнинг. Нужно смотреть конкретные конфиги, конкретный сайт, логи и тд. Потому как все дальнейшие настройки от сайта к сайту меняются. Более подробная консультация - не предмет обсуждения на Тостере, а предмет непосредственной работы с сервером.
    Ответ написан
    4 комментария
  • Нужно ли ставить кеширующий плагин на wordpress сайты?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Надо. Но у вас на сервере должен быть установлен Memcached или Redis. Именно они дадут очень заметный прирост.
    2. Оптимизацию вам сделали весьма "так себе". Во-первых, нет упоминания именно про кеширующие бекенды (см. п.1), во-вторых, "оптимизация", в которой присутствует Apache таковой не является. Apache - одно из самых узких мест для low cost / low end серверов. Все, что делает Apache, делает и Nginx, только на порядки шустрее.
    Ответ написан
    2 комментария