
MEMCACHED — поставим, отмониторим
Многие работают с таким акселератором, как Memcache. Для работы с ним на многих языках программирования, будь то JAVA, PHP, PYTHON или другие, есть готовые библиотеки. Также, для готовых «движков» есть свои плагины, позволяющие ускорить работу сайта, для Joomla, WordPress и прочих)
Описание Memcache на вики
Установка особого труда не вызывает:
aptitude install memcached
Конфигурационный файл находится по адресу:
/etc/memcached.conf
Особого тюнинга не требует, если нужно, «подкручиваем» размер кеша (параметр -m).
Но прежде, чем его тюнить, надо оценить, насколько эффективно мы его используем.
Получить статистику можно вручную через telnet:
mas@test:~$ telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. stats STAT pid 12200 STAT uptime 261079 STAT time 1385959060 STAT version 1.4.5 STAT pointer_size 64 STAT rusage_user 437.583347 STAT rusage_system 1529.471586 STAT curr_connections 7 STAT total_connections 12732514 STAT connection_structures 44 STAT cmd_get 18748186 STAT cmd_set 1233653 STAT cmd_flush 0 STAT get_hits 18325325 STAT get_misses 422861 STAT delete_misses 0 STAT delete_hits 0 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 auth_cmds 0 STAT auth_errors 0 STAT bytes_read 3035154650 STAT bytes_written 60994110129 STAT limit_maxbytes 536870912 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes 97525 STAT curr_items 54 STAT total_items 920050 STAT evictions 0 STAT reclaimed 151635 END quit Connection closed by foreign host.
Статистика бывает нескольких видов:
— просто stats, выводит общую статистику;
— stats slabs, выводит статистику по использованию памяти;
— stats items, выводит статистику по кешу «ключ-значения»;
— stats sizes, выводит статистику по размерам объектов;
— чтобы сбросить статистику — stats reset;
Для мониторинга я использую общую статистику с помощью пхп. Ниже приведены скрипты, которые «дергают» статистику:
1) первый скрипт на пхп, который возвращает статистику:
<?php $memcache = new Memcache; $memcache->connect('localhost',11211); print_r($memcache->getStats()); $memcache->close() ?>
2) второй скрипт возвращает нужный результат через парсинг:
#!/bin/bash PARAM=$1 REZ=`php /usr/local/scripts/memcache_state.php | awk '/\['$PARAM'\]/ { print $3 }'` echo $REZ
Соответственно, в первый скрипт я указываю параметр, значение которого хочу получить, а он, просто парсит его в пхп-скрипте (ПХП я знаю слабо).