Справочная информация >> Инструкции по аккаунту >> Настройка и использование Memcached


Настройка и использование Memcached

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

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

Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы. С помощью клиентской библиотеки (для C/C++, Ruby, Perl, PHP, Python, Java и др.) позволяет кэшировать данные в оперативной памяти сервера. Модуль php для использования Memcached работает только для php версии 5.3 и выше.

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

Чтобы убедиться, что Ваш персональный memcached подключен, необходимо зайти в панель управления и перейти в раздел «Дополнительные услуги» (по умолчанию memcached отключен).

Для подключения доступно несколько тарифных планов:

  • 128Mb - 30 руб/мес
  • 256Mb - 60 руб/мес
  • 512Mb - 90 руб/мес
  • 1024Mb - 120 руб/мес

При подключении CMS-тарифа для Bitrix доступен дополнительный вариант услуги Memcached: 64Mb - абсолютно бесплатно!

В рамках всей линейки тарифов «TURBO» данная услуга предоставляется совершенно бесплатно в максимальной конфигурации.

Параметры для подключения host: localhost, port: 11211

Для разных CMS существуют свои тонкости по работе с memcached. Далее мы разберём, как настроить его для самых популярных систем управления сайтом среди наших клиентов. А также будут приведены данные нашего тестирования, которые позволят Вам увидеть разницу в производительности сайта с memcached и без него.

  1. Joomla
  2. Wordpress
  3. Bitrix
  4. Drupal
  5. MODX
  6. OpenCart

Все тесты проводились нашими квалифицированными специалистами с помощью утилиты siege (утилита для нагрузочного тестирования веб-серверов) в течение 1 минуты

Memcached для Joomla?

Для настройки memcached для CMS Joomla необходимо зайти в административную панель установленной версии Joomla (по умолчанию: //site.ru/administrator), выбрать в меню раздел «Система → Общие настройки» и перейти в пункт «Система»

В подразделе «Настройки кэша» в качестве «Обработчика кэширования» выберите пункт Memcache, а для «Системного кэша» настройте «Стандартное кэширование». Обратите внимание, что если у Вас установлена версия php 7.0 и выше, вместо Memcache Вы увидите «Memcached (Experimental)»

После произведённых настроек нажмите кнопку «Сохранить» или «Сохранить и закрыть» в верхней части страницы.

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

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 70%

Memcached для WordPress?

Для настройки Memcached на WordPress зайдите в административную панель установленной версии WordPress (по умолчанию: //site.ru/wp-admin), выберите пункт меню «Плагины → Добавить новый»

Проведите поиск по слову WP-FFPC, при появлении нужного нам плагина, нажмите Установить, а затем Активировать

Для правильной работы приложения, Вам нужно перейти в Панель управления сайтом (раздел «Файловый менеджер») и в корневой директории (по умолчанию /htdocs/www) найти файл wp-config.php. Откройте его в любом встроенном редакторе и добавьте строку в начало файла:

define ( 'WP_CACHE', true );

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


Для настройки, нажмите на слово «Settings». В подразделе Cache type должен быть выбран PHP Memcached для пункта «Sеlect backend»

После этого сохраните настройки внизу страницы (Save Changes). Должно появиться сообщение о том, что плагин запущен и работает:

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

Ключ соответствует частям ссылки, вида http://site.ru/some-page:

  • $scheme - тип соединения http или https;
  • $host - доменное имя сайта;
  • $request_uri - запрос, страница на сайте.

На вкладке «Cache exceptions» можно настроить различные исключения для кеширования, такие как:

  • кеширование для залогиненных пользователей сайта (по умолчанию выключено);
  • кеширование отдельных элементов сайта (Exclude home/Exclude feeds/Exclude archives/Exclude pageg/Exclude singulars) и динамических страниц (Dynamic requests) по умолчанию включено;
  • кеширование для страниц, начинающихся с /wp-, по умолчанию выключено.

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 50%

Memcached для 1C-Bitrix?
Модуль Memcache для Bitrix работает для версий php 5.4-5.6

После установки CMS 1С-Bitrix на сайт, необходимо зайти в конфигурационные файлы и прописать необходимые настройки.

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

  • Если версия меньше 14.0, то редактируем файл /bitrix/php_interface/dbconn.php
  • Если версия выше, чем 14.0, то редактируем файл /bitrix/.settings_extra.php (в случае его отсутствия, необходимо его создать)

Для создания/редактирования файлов пройдите в «Панель управления → Файловый менеджер», либо подключившись к серверу по ssh/ftp.

При редактировании файла /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");

Если редактируемым файлом является /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"
    ),
 ),
?>

Чтобы убедиться, что memcached подключен, нужно пройти в «Административную панель сайта → Настройки → Панель производительности» (вкладка Битрикс)

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 60%

Memcached для Drupal?

После установки CMS Drupal на Ваш сайт пройдите по ссылке http://site.ru/, введите логин/пароль и перейдите во вкладку «Modules» вверху страницы

Нам необходимо добавить модуль Memcache (по умолчанию его нет)

На данной странице есть строка «Download additional contributed modules to extend Drupal's functionality». Вы можете перейти по ссылке, нажав на contributed modules. На открывшейся странице есть поле для поиска нужного нам модуля «Search Modules». Введите слово memcached и нажмите «Поиск» (Search). Далее пройдите по ссылке Memcache API and Integration.

Внизу страницы Вы найдёте ссылки для скачивания данного модуля. Выберите версию ядра Drupal, которая установлена на Вашем сайте (в нашем случае, это была «Drupal - 7.57»).

После скачивания подходящей версии перейдите в «Панель управления → Файловый менеджер» и распакуйте файлы в папку /www/sites/all/modules/

Далее перейдите в директорию ./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';

Если Вы всё сделали правильно, в разделе «Modules» (панели управления Drupal) должны были появиться две новые строки:

Выделите их галочками и нажмите Save configuration. Модуль Memcached настроен.

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 60%

Memcached для MODX?

Для активации memcached на платформе MODX, необходимо зайти в панель управления данной CMS по ссылке http://site.ru/manager/, ввести свой логин/пароль от системы управления и перейти в «Системные настройки»

Затем найдите раздел «Кэширование» (ключ - cache_handler). В строке «Значение» необходимо поменять его на «cache.xPDOMemCache» и нажать Enter

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 20%

Memcached для OpenCart?

Настройка memcached для OpenCart версии 1:

Чтобы настроить memcached для данной версии системы управления сайтом, необходимо зайти в «Панель управления → Файловый менеджер» и добавить следующий код в конфигурационные файлы: /www/config.php и /www/admin/config.php

define('CACHE_DRIVER', 'memcached');
define('MEMCACHE_HOSTNAME', 'localhost');
define('MEMCACHE_PORT', '11211');
define('MEMCACHE_NAMESPACE', 'opencart_test');

Настройка memcached для OpenCart версии 2 и выше:

Зайдите в «Панель управления → Файловый менеджер» и добавьте следующий код в конфигурационные файлы: /www/config.php и /www/admin/config.php

// CACHE
define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '11211');
define('CACHE_PREFIX', 'oc_');

Далее нужно отредактировать файл default.php, расположенный в каталоге system/config. Найдите такой блок кода:

// Cache
$_['cache_engine'] = 'file'; // apc, file, mem or memcached
$_['cache_expire'] = 3600;

В строке с параметром cache_engine замените file на memcached, чтобы блок кода принял такой вид:

// Cache
$_['cache_engine'] = 'memcached'; // apc, file, mem or memcached
$_['cache_expire'] = 3600;

На этом настройка Memcached закончена

Результаты тестирования загрузки сайта с помощью утилиты siege:

До:

После:

Вывод: после подключения memcached прирост производительности составил более 75%

Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».