Подключение Memcached к 1С-Битрикс: настройка кеширования в оперативной памяти
По умолчанию 1С-Битрикс хранит кеш в файлах. Такой подход работает практически на любом хостинге, однако на нагруженных проектах постоянное чтение и запись большого количества файлов начинает создавать дополнительную нагрузку на дисковую подсистему.
Одним из способов ускорения сайта является использование Memcached — сервиса, который хранит кеш в оперативной памяти. Это позволяет сократить количество обращений к диску и повысить скорость работы сайта.
Что такое Memcached
Memcached — это высокопроизводительная система хранения данных в памяти. Она предназначена для кеширования результатов SQL-запросов, объектов и других временных данных.
Основные преимущества:
- снижение нагрузки на дисковую подсистему;
- ускорение работы сайта;
- уменьшение количества обращений к базе данных;
- простая настройка;
- небольшое потребление ресурсов.
Memcached особенно полезен на VPS и выделенных серверах с большим количеством посетителей.
Когда имеет смысл использовать Memcached
Использование Memcached оправдано, если:
- сайт работает на VPS или выделенном сервере;
- включено управляемое кеширование Битрикс;
- на сайте много каталога и инфоблоков;
- наблюдается высокая нагрузка на диск;
- используется кластер Битрикс;
- на сервере достаточно оперативной памяти.
Для небольших сайтов с посещаемостью несколько десятков человек в сутки разница может быть практически незаметной.
Установка Memcached в Debian и Ubuntu
Установим сам сервер Memcached:
apt update apt install memcached
Проверим состояние службы:
systemctl status memcached
Если всё успешно, сервис должен иметь статус:
active (running)
Также полезно добавить запуск при старте системы:
systemctl enable memcached
Установка PHP-расширения
Битрикс взаимодействует с Memcached через PHP-модуль.
Для PHP 8.2 установка выполняется так:
apt install php8.2-memcached
После установки необходимо перезапустить PHP-FPM:
systemctl restart php8.2-fpm
Проверить подключение можно командой:
php -m | grep memcached
В ответ должно появиться:
memcached
Проверка работы Memcached
Проверим, слушает ли сервис порт 11211:
ss -lnt | grep 11211
Обычно отображается:
127.0.0.1:11211
Это означает, что Memcached доступен только локально и не открыт во внешний интернет.
Настройка Битрикс
В файле /bitrix/.settings.php необходимо найти секцию cache и изменить её следующим образом:
'cache' => [
'value' => [
'type' => 'memcache',
'memcache' => [
'host' => '127.0.0.1',
'port' => '11211'
]
]
],
После сохранения файла Битрикс начнёт использовать Memcached вместо файлового кеша.
Очистка старого кеша
После изменения настроек рекомендуется удалить старый файловый кеш:
rm -rf /home/bitrix/www/bitrix/cache/* rm -rf /home/bitrix/www/bitrix/managed_cache/*
Либо выполнить очистку через административную панель Битрикс.
Просмотр статистики Memcached
Посмотреть количество объектов и использование памяти можно командой:
echo stats | nc localhost 11211
Будут доступны параметры:
- curr_items — количество объектов;
- bytes — объём используемой памяти;
- get_hits — количество попаданий в кеш;
- get_misses — количество промахов;
- uptime — время работы сервиса.
Настройка объёма памяти
По умолчанию Memcached использует 64 МБ памяти. Для большинства сайтов этого недостаточно.
Изменить объём можно в файле:
/etc/memcached.conf
Например:
-m 512
Здесь 512 означает использование 512 МБ оперативной памяти.
После изменения настроек необходимо перезапустить сервис:
systemctl restart memcached
Что лучше: Memcached или Redis?
| Параметр | Memcached | Redis |
|---|---|---|
| Скорость | Очень высокая | Очень высокая |
| Постоянное хранение данных | Нет | Есть |
| Структуры данных | Простые ключ-значение | Расширенные |
| Потребление памяти | Минимальное | Немного выше |
| Простота настройки | Максимальная | Высокая |
Для большинства проектов на 1С-Битрикс подойдёт как Memcached, так и Redis. Redis предоставляет больше возможностей и в последние годы используется чаще, однако Memcached остаётся лёгким и очень быстрым решением.
Заключение
Подключение Memcached позволяет перенести кеш Битрикс из файловой системы в оперативную память, что уменьшает нагрузку на диск и ускоряет работу сайта. Особенно заметен эффект на крупных интернет-магазинах и высоконагруженных проектах.
Если сайт работает на VPS или выделенном сервере и уже использует управляемое кеширование, подключение Memcached может стать одним из самых простых способов повысить производительность без изменения кода.
Комментарии