Установка и настройка Memcached

Добро пожаловать в подробное руководство по установке и настройке Memcached в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления Memcached, включая настройку кеширования данных и оптимизацию производительности. Memcached — это высокопроизводительный распределенный кеш, который используется для ускорения веб-приложений за счет хранения данных в оперативной памяти. Понимание его установки и конфигурации является важным навыком для системных администраторов и разработчиков.

Установка и конфигурация Memcached

Установка Memcached

Для установки Memcached в НАЙС ОС используйте пакетный менеджер tdnf. Выполните следующую команду:

sudo tdnf install -y memcached

Запуск и остановка Memcached

После установки вы можете запустить Memcached с помощью systemd:

sudo systemctl start memcached

Для автоматического запуска Memcached при загрузке системы выполните команду:

sudo systemctl enable memcached

Для остановки Memcached используйте команду:

sudo systemctl stop memcached

Основная конфигурация Memcached

Основной файл конфигурации Memcached находится в /etc/sysconfig/memcached. Рассмотрим основные параметры конфигурации:


PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
  

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

Настройка кеширования данных

Использование Memcached с PHP

Для использования Memcached с PHP установите расширение Memcached:

sudo tdnf install -y php-pecl-memcached

Перезагрузите веб-сервер для применения изменений:

sudo systemctl restart httpd

Пример использования Memcached с PHP

Создайте файл memcached_test.php со следующим содержимым:


addServer("localhost", 11211);

$key = "my_key";
$value = "Hello, Memcached!";

$mem->set($key, $value);

$cached_value = $mem->get($key);
echo $cached_value;
?>
  

Откройте этот файл в браузере для проверки работы Memcached с PHP.

Использование Memcached с Python

Для использования Memcached с Python установите библиотеку pymemcache:

pip install pymemcache

Пример использования Memcached с Python

Создайте файл memcached_test.py со следующим содержимым:


from pymemcache.client import base

client = base.Client(('localhost', 11211))
client.set('my_key', 'Hello, Memcached!')

value = client.get('my_key')
print(value.decode('utf-8'))
  

Запустите этот файл для проверки работы Memcached с Python:

python memcached_test.py

Мониторинг и оптимизация производительности

Мониторинг Memcached

Для мониторинга Memcached используйте утилиту memcached-tool и команды Telnet.

Использование memcached-tool

Утилита memcached-tool предоставляет информацию о состоянии Memcached. Запустите следующую команду для получения статистики:

memcached-tool localhost:11211 stats

Использование Telnet

Подключитесь к Memcached с помощью Telnet для выполнения команд:

telnet localhost 11211

Введя команду stats, вы получите информацию о текущем состоянии Memcached:


stats
STAT pid 1234
STAT uptime 3600
STAT time 1618393845
STAT version 1.5.6
STAT libevent 2.1.8-stable
STAT pointer_size 64
STAT rusage_user 0.200000
STAT rusage_system 0.300000
STAT curr_connections 10
STAT total_connections 100
STAT connection_structures 20
STAT reserved_fds 5
STAT cmd_get 200
STAT cmd_set 150
STAT cmd_flush 0
STAT get_hits 180
STAT get_misses 20
STAT delete_misses 5
STAT delete_hits 5
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 123456
STAT bytes_written 78910
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 100
STAT lru_maintainer_juggles 200
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 1234567
STAT curr_items 100
STAT total_items 200
STAT slab_global_page_pool 0
STAT expired_unfetched 50
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 20
STAT crawler_reclaimed 0
STAT crawler_items_checked 1000
STAT lrutail_reflocked 0
END
  

Оптимизация производительности Memcached

Для оптимизации производительности Memcached рассмотрим несколько основных параметров:

  • MAXCONN: Увеличение максимального количества соединений может улучшить производительность при высоких нагрузках.
  • CACHESIZE: Увеличение размера кеша позволяет хранить больше данных в памяти, что снижает количество обращений к базе данных.
  • -t: Настройка количества потоков для обработки запросов может улучшить производительность на многопроцессорных системах.

Пример оптимизированной конфигурации


PORT="11211"
USER="memcached"
MAXCONN="2048"
CACHESIZE="256"
OPTIONS="-t 4"
  

Эта конфигурация увеличивает максимальное количество соединений до 2048, размер кеша до 256 МБ и использует 4 потока для обработки запросов.

Настройка мониторинга с помощью Prometheus и Grafana

Для более продвинутого мониторинга Memcached можно использовать Prometheus и Grafana.

Установка и настройка Exporter

Скачайте и установите memcached_exporter:

wget https://github.com/prometheus/memcached_exporter/releases/download/v0.7.0/memcached_exporter-0.7.0.linux-amd64.tar.gz
tar -xzf memcached_exporter-0.7.0.linux-amd64.tar.gz
sudo mv memcached_exporter-0.7.0.linux-amd64/memcached_exporter /usr/local/bin/

Запустите memcached_exporter:

memcached_exporter -memcached.address=localhost:11211

Настройка Prometheus

Добавьте конфигурацию для сбора метрик Memcached в файл prometheus.yml:


scrape_configs:
  - job_name: 'memcached'
    static_configs:
      - targets: ['localhost:9150']
  

Запустите Prometheus с обновленной конфигурацией:

prometheus --config.file=prometheus.yml

Настройка Grafana

Добавьте Prometheus как источник данных в Grafana и создайте дашборд для визуализации метрик Memcached.

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления Memcached в НАЙС ОС. Memcached предоставляет мощные возможности для ускорения веб-приложений за счет хранения данных в оперативной памяти, а понимание его настройки и оптимизации является важным навыком для системных администраторов и разработчиков. Продолжайте изучать и применять эти знания на практике для создания стабильных и высокопроизводительных систем кеширования данных.