Блог / Статьи

Полезная информация для вашего хостинга

Настройка и использование Memcached для популярных CMS

Настройка и использование Memcached для популярных CMS

В этой статье рассказывается о Memcached: что это за технология, для чего она нужна и как она влияет на производительность популярных CMS.

Зачем нужно кеширование данных?

Кеширование — это важный элемент оптимизации любого веб-проекта. По мере роста посещаемости сайта увеличиваются нагрузки на сервер и возрастает время генерации страниц. Кеширование помогает справляться с этими проблемами. Одним из популярных решений в этой области является Memcached.

Что такое Memcached?

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

Особенности Memcached

Memcached изначально не поддерживает разделение данных и управление доступом. Это значит, что любой пользователь сервера может взаимодействовать с Memcached, включая модификацию или удаление данных. Хотя критически важные данные в Memcached обычно не хранят, такие возможности всё же могут негативно повлиять на работу сайта.

Подключение Memcached в CMS

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

Для тестирования использовалась утилита siege, а продолжительность каждого теста составляла 5 минут.

Настройка Memcached в WordPress

Для интеграции Memcached в WordPress необходимо установить и настроить плагин. Пошаговая инструкция:

1. Перейдите в административную панель сайта (например, http://site.ru/wp-admin/).
2. В разделе "Плагины" выберите пункт "Добавить новый".


3. В строке поиска введите WP-FFPC и нажмите *Enter*.


4. Установите найденный плагин, нажав "Установить", а затем активируйте его.

memcached3
5. Перейдите в настройки плагина и выберите подходящий тип PHP-расширения:

memcached5
- Memcache для версий PHP 7.2 и ниже.
- Memcached для PHP 7.3 и выше.

memcached6
6. Сохраните настройки, после чего в верхней части страницы появится сообщение об успешной интеграции Memcached.

memcached7

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

Включение кеширования

Чтобы активировать кеширование, необходимо добавить следующую директиву в конфигурационный файл WordPress wp-config.php

define('WP_CACHE', true);

Редактировать файл можно через SSH (например, с помощью утилиты PuTTY) или через файловый менеджер в Панели управления хостингом.

Теперь Memcached настроен и готов к использованию. Это поможет значительно ускорить работу сайта и уменьшить нагрузку на сервер.

Финальные шаги настройки Memcached

После завершения настройки сайт начнёт использовать систему кеширования Memcached.

Корректировка параметров кеширования

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

Ключ кеширования:

memcached11

По умолчанию ключ для кеширования выглядит следующим образом: 

$scheme://$host$request_uri

Где:
- $scheme — тип соединения (http или https),
- $host — доменное имя сайта,
- $request_uri — запрашиваемая страница сайта.

Например, URL вида `http://site.ru/category/innovaciya/`.

Исключения для кеширования:

На вкладке "Cache exceptions" можно задать правила исключения, такие как:
- кеширование для авторизованных пользователей (по умолчанию выключено);
- исключение кеширования для:
- главной страницы (Exclude home),
- лент новостей (Exclude feeds),
- архивов (Exclude archives),
- страниц (Exclude pages),
- отдельных записей (Exclude singulars),
- динамических запросов (Dynamic requests) — включено по умолчанию;
- отключение кеширования страниц, начинающихся с `/wp-` (по умолчанию отключено).

Результаты тестирования производительности

Для оценки влияния Memcached на производительность сайта использовалась утилита siege. Тесты проводились в течение 5 минут.

Результаты без Memcached: 

- Transactions: 7258 запросов
- Response time: 0.49 сек
- Transaction rate: 20.17 запросов/сек
- Throughput: 0.23 МБ/сек

Результаты с включённым Memcached: 

- Transactions: 11518 запросов
- Response time: 0.12 сек
- Transaction rate: 32.06 запросов/сек
- Throughput: 0.36 МБ/сек

После включения Memcached сервер стал обрабатывать запросы быстрее, а время отклика сократилось в четыре раза. Это значительно повысило производительность сайта, снизив нагрузку на сервер и ускорив загрузку страниц.

Теперь ваш сайт готов к стабильной работе даже при увеличении посещаемости.

Joomla! и Memcached

В Joomla! поддержка Memcached встроена по умолчанию, и её нужно лишь активировать.

Шаги настройки:

1. Войдите в панель управления сайтом (по умолчанию: `http://site.ru/administrator/`).
2. Перейдите в раздел Сайт → Общие настройки.

memcached13
3. Выберите вкладку Система.

memcached44. В настройках кеширования укажите следующие параметры:
- Кеш: Стандартное кеширование,
- Обработчик кеширования: Memcache.
5. Нажмите кнопку Сохранить в верхней части страницы.

Теперь сайт настроен для работы с Memcached.

Результаты тестирования Joomla!

Без Memcached: 

- Transactions: 11431
- Response time: 0.13 сек
- Transaction rate: 31.79 запросов/сек

С Memcached: 

- Transactions: 12203
- Response time: 0.09 сек
- Transaction rate: 33.97 запросов/сек

 Время ответа сервера снизилось с 0.13 до 0.09 секунд. Разница может казаться незначительной, но при увеличении нагрузки на сайт эффект будет более заметен.

Drupal и Memcached

Установка Memcached для Drupal:

1. Подключитесь к серверу через SSH (например, с помощью утилиты PuTTY).
2. Перейдите в корневую директорию вашего сайта: 

cd /home/t/testtomas1/test123123.ru/public_html

3. Установите модуль Memcached командой:

drush dl memcache

 После успешной установки появится сообщение: 

Project memcache (7.x-1.5) downloaded to /sites/all/modules/memcache.

4. Добавьте следующие строки в файл конфигурации `./sites/default/settings.php`: 

   $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
   $conf['cache_default_class'] = 'MemCacheDrupal';
   $conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc';

memcached15

 

 5. Сохраните изменения в файле.

Активация модуля:

1. Зайдите в административную панель сайта: `http://site.ru/admin`.
2. Перейдите в раздел Модули.
3. Найдите модуль Memcached, установите флажок для его активации и нажмите Сохранить.

memcached17

Теперь Drupal настроен для использования Memcached.

езультаты тестирования Drupal

Без Memcached: 

- Transactions: 4501
- Response time: 1.09 сек
- Transaction rate: 12.51 запросов/сек

С Memcached: 

- Transactions: 5894
- Response time: 0.72 сек
- Transaction rate: 16.39 запросов/сек

 

 Использование Memcached увеличило производительность на 30%, снизив время отклика с 1.09 до 0.72 секунд.

Настройка Memcached в Joomla! и Drupal позволяет значительно улучшить производительность сайтов, особенно при увеличении посещаемости или добавлении нового контента. Memcached сокращает время отклика сервера и повышает скорость загрузки страниц, что положительно сказывается на пользовательском опыте.

Bitrix и Memcached

Для подключения кеширования через Memcached в CMS Bitrix необходимо отредактировать соответствующие конфигурационные файлы в зависимости от версии ядра.

 1. Определение версии ядра Bitrix

Версию ядра можно узнать в административной панели сайта, по умолчанию по следующему адресу:
- http://site.ru/bitrix/admin/index.php.

memcached18

2. Редактирование конфигурационных файлов

- Для версии ядра ниже 14.0: необходимо отредактировать файл `./bitrix/php_interface/dbconn.php`.
- Для версии ядра 14.0 и выше: редактируется файл `./bitrix/.settings_extra.php`. Если этого файла нет, его нужно создать.

3. Настройка Memcached

Если версия ядра ниже 14.0, добавьте в файл `./bitrix/php_interface/dbconn.php` следующие строки: 

define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "127.0.0.1");

memcached23

Если версия ядра 14.0 и выше, добавьте в файл `./bitrix/.settings_extra.php` следующие строки: 

<?php
return array(
  'cache' => array(
    'value' => array (
       'type' => 'memcache',
       'memcache' => array(
           'host' => '127.0.0.1',
           'port' => '11211'
       ),
       'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
       ),
    ),
 );
?>

После внесения изменений сохраните файл.

4. Проверка настройки Memcached

Чтобы убедиться, что сайт использует Memcached, перейдите в административную панель сайта и выполните следующие шаги:
1. Откройте Настройки.
2. Перейдите в раздел Панель производительности.

memcached20
3. В настройках кеширования должно быть указано Memcache.

memcached21

Теперь сайт настроен для использования Memcached.

Результаты тестирования производительности Bitrix

Без Memcached: 

- Transactions: 13383
- Response time: 0.07 сек
- Transaction rate: 37.20 запросов/сек

С Memcached: 

- Transactions: 13587
- Response time: 0.03 сек
- Transaction rate: 37.78 запросов/сек

Как видно из результатов тестирования, использование Memcached снижает время ответа сервера с 0.07 до 0.03 секунд, что позволяет ускорить процесс генерации страниц. Это особенно важно при увеличении объёма контента и числа посетителей. Даже на тестовом сайте без контента мы видим заметное улучшение производительности, и с увеличением нагрузки этот эффект будет ещё более выражен.

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

Настройка Memcached для Webasyst

Для интеграции Memcached с платформой Webasyst выполните следующие шаги:

1. Создание файла конфигурации

В каталоге сайта создайте файл `wa-config/cache.php` со следующим содержимым: 

<?php
return array(
    'default' => array(
        'type' => 'memcached',
        'servers' => array(
            array(
                'host' => 'localhost',
                'port' => 11211,
            ),
        )
    )
);

Этот файл указывает системе использовать Memcached для хранения кеша, подключаясь к локальному серверу Memcached на порту 11211.

2. Проверка работоспособности Memcached

Чтобы убедиться, что Memcached работает, создайте в корне сайта файл, например, `check_memcached.php`, со следующим кодом: 

<?php
$cache = new Memcached();
$cache->addServer('localhost', 11211);
echo '<pre>';
var_dump($cache->getAllKeys());
echo '</pre>';

При обращении к этому файлу через браузер (`http://site.ru/check_memcached.php`) будут выведены все ключи данных, которые на данный момент хранятся в Memcached.

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

Интеграция Memcached позволяет значительно ускорить работу Webasyst, особенно при высокой посещаемости и большом количестве данных, снижая нагрузку на сервер за счёт кэширования.