Запутались в решении кеширования: MemCache, Varnished, mod_cache, еще?

У меня очень тяжелый сайт на моем сервере. Нагрузка на сервер всегда составляет около 30-50, а иногда даже 150, и сервер работает очень тяжело. Я ищу решение для кэширования, которое может повысить производительность сервера и уменьшить нагрузку на сервер.

Но я не знаю, какое решение для кэширования мне следует использовать? Кстати, я использую CMS Drupal и у меня есть WHM/CPanel

Вот варианты, которые я нашел: 1- Memcached 2- Varnish 3- Apache mod_cache

Может кто-нибудь дать мне некоторое сравнение или руководство по поводу этих платформ? Работает ли mod_cache Apache так же хорошо, как, скажем, Varnish? Потому что установка и настройка Varnish не сложны в cPanel / WHM. Хотя я прочитал очень хорошие отзывы о лаке.

Я ищу лучшее решение для кэширования, которое может быть настроено просто и не сложно. Буду признателен за любую помощь или комментарий.

1 ответ

Решение

Вот варианты, которые я нашел: 1- Memcached 2- Varnish 3- Apache mod_cache

Предостережения: Знаете ли вы, почему ваш груз такой высокий? Если нагрузка вызвана высокой загрузкой ЦП, необходимой для генерации динамического контента, и вы можете обслуживать этот контент из кэша, то решение для кэширования может вам помочь. Но если нагрузка вызвана конфликтом ввода-вывода или обслуживанием персонализированного контента, который нельзя изменить в кэшировании, решение для кэширования может не сильно помочь.

В общем случае для эффективности кешу потребуется большой кусок памяти. Если ваша система уже ограничена в памяти, то установка программного обеспечения для кэширования может усугубить вашу проблему.

  • Memcached

    Memcached сам по себе не поможет. То есть, в отличие от mod_cache от Varnish и Apache, Memcached - это не то, что вы можете просто поставить перед существующим приложением.

    Memcached - это очень быстрое хранилище данных ключ / значение, которое может использоваться приложениями для ускорения различных операций. Типичным примером является база данных, которая должна выполнять запросы к базе данных: если можно кэшировать результаты в течение некоторого времени, результаты могут быть обработаны намного быстрее с помощью memcached, чем с базовой базой данных.

    Если нагрузка на сервер в значительной степени является результатом пользовательского кода, то изменение кода для использования memcached может принести существенную выгоду.

  • Лак и апач mod_cache

    Оба из них могут быть использованы для ускорения доставки динамического контента.

    Varnish - это специализированный инструмент, разработанный как ускоритель контента. Это только одно, но по репутации это очень хорошо. Язык конфигурации - это подмножество C, которое компилируется и загружается в работающий процесс Varnish; это не хорошо или плохо само по себе, но я предпочитаю более декларативные языки.

    Apache mod_cache также может быть использован в качестве ускорителя контента. У mod_cache есть два преимущества:

    • Если вы уже используете Apache, вы будете знакомы с конфигурацией, используемой mod_cache.
    • Вы можете комбинировать mod_cache с другими модулями Apache (например, mod_rewrite и mod_header), чтобы создать очень гибкую конфигурацию.

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

    Оба продукта работают лучше всего, если вы настраиваете свое бэкэнд-приложение для обеспечения кеш-содержимого. Это означает соответствующие заголовки кэширования, отсутствие файлов cookie для кэшируемого содержимого, соответствующие заголовки максимального срока хранения или истечения срока действия и т. Д.

Убедитесь, что вы сначала поняли свою проблему: выясните, что является причиной высокой нагрузки. Затем попробуйте одно или несколько из этих решений и посмотрите, что произойдет.

Другие вопросы по тегам