суботу, квітня 18, 2009

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

memcachedДля начала использования memcached, вы должны запустить memcached-сервис на одном или более серверов. Запуск сервиса: сетапит сервер, выделяет память, и собственно прослушивает соединения от клиентов, использующих сервис.
Пометка: Вы можете запустить memcached не из под рута, но в этом случае вы будете слушать только один TCP/IP порт (от 1024). Однако, вы не должны использовать пользователя, для запуска сервиса, у которого есть ограничения памяти, например setrlimit.
Для запуска сервера, не из под рута:
shell>memcached
По дефолту, memcached использует следующие настройки:
  • Выделение памяти: 64 мб;
  • Прослушивает порт для соединений: 11211;
  • Максимум 1024 одновременных подключений;
Обычно люди используют полную комбинацию опций, при старте сервиса, а также скрипт, который сам запускает memcached при старте компьютера. Для примера, следующая строка запускает сервис с максимум 1024 MB RAM для кэша, прослушивает 11121 порт на айпи-адресе 192.168.0.110, запущен как бекграунд-демон.
shell> memcached -d -m 1024 -p 11121 -l 192.168.0.110
Для того, что бы убедиться, что memcached запущен, вы можете его проверить. На OpenSolaris мемкеш контролируется SMF. Активируйте его, запустив:
root-shell> svcadm enable memcached
memcached поддерживает следующие опции:
  • -u user
Если вы запускаете memcached как root, используйте опцию -u, для обозначения пользователя, который запустит memcached
shell> memcached -u memcache
  • -m memory
Установите количество выделяющейся памяти, по дефолту 64 Mb. Для увеличения используемой RAM памяти (в мегабайтах) используйте опцию -m. Чем больше памяти вы выделите, тем больше данных вы сможете сохранить.
Внимание: Не выделяйте памяти больше, чем у вас есть в RAM. Если вы выделите больше памяти, то то место, которое не влезло засвапится, это приведет к замедлению сохранения и возвращения данных. Вы можете проинспектировать свою память командой vmstat.
shell> vmstat
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s1 s2 -- -- in sy cs us sy id
0 0 0 5170504 3450392 2 7 2 0 0 0 4 0 0 0 0 296 54 199 0 0 100

Для примера выделим 3GB памяти:
shell> memcached -m 3072
На 32-битных х86 системах, где используется РАЕ для доступа к памяти, стоит 4 GB лимит и вы не сможете выделить памяти больше этого лимита. Но вы можете обойти это ограничение, запустив несколько сущностей memcached, каждую на разный порт:
shell> memcached -m 1024 -p11211
shell> memcached -m 1024 -p11212
shell> memcached -m 1024 -p11213
  • -l interface
Определяет сетевой интерфейс/адрес для прослушивания соединений. По дефолту стоит на прослушку всех свободных адресов (INADDR_ANY).
shell> memcached -l 192.168.0.110
Поддержка IPv6 была добавлена в версии memcached 1.2.5
  • -p port
Определяет TCP порт, используемый для соединений. По дефолту: 18080.
shell> memcached -p 18080
  • -U port
Определяет UDP порт, используемый для соединений. По дефолту: 0 (выключен);
shell> memcached -U 18080
  • -s socket
Определяет Unix socket используемый для прослушки.
Если вы запустили memcached на одном сервере, вы можете отключить сетевой интерфейс и использовать локальный Unix socket, для этого надо воспользоваться -s опцией.
shell> memcached -s /tmp/memcached
Использование сокета автоматически отключает сетевой интерфейс и сохраняет открытыми порты;
  • -a mask
Определяет маску доступа для Unix socket в восьмеричной системе. По дефолту 0700;
  • -c connections
Определяет максимальное число одновременных подключений, по дефолту 1024;
shell> memcached -c 2048
Вы должны использовать данную опцию, также для уменьшения количества одновременных подключений к memcached, для улучшения работы сервера;
  • -t threads
Определяет количество потоков, для обработки входящих запросов. По умолчанию, memcached сконфигурирован с использованием 4 конкурентных потоков. Потоки улучшают процесс сохранения и отдачи даты в кеш и из кеша. Используйте замыкающую систему, для предотвращения перезаписи различных потоков или апдейта одинаковых данных. Вы можете увеличить или уменьшить количество потоков используя опцию -t;
shell> memcached -t 8
  • -d
Запускает memcached как демон бэкграунд процесс;
shell> memcached -d
  • -r
Увеличить размер файла ядра. В случае краша системы, эта опция позволит задампить всю выделенную память на диск, несмотря на установку setrlimit;
  • -M
Возвращает ошибку клиенту, в случае когда память закончилась. Эта опция обходит нормальную работу memcached, когда старые элементы замещаются новыми;
  • -k
Ограничение памяти;
Пользовательское ограничение по количеству выделяемой памяти. Попытка выделить больше памяти, чем разрешено приведет к ошибке. Вы можете установить лимит тому пользователю, при помощи которого стартуете демон (для -u user) вместе с шелом ulimit -S -l NUM_KB
  • -v
Отладочный режим (verbose mode). Печатает ошибки и замечания, пока запускается главный цикл;
  • -vv
Вдвойне отладочный режим. В дополнение к режиму -v печатает каждую клиентскую команду и ответ на нее;
  • -h
Печатает справку и выходит;
  • -i
Печатает memcached и libevent соглашения;
  • -b
Запускает контроллируемую сущность;
  • -p pidfile
Сохраняет ID процесса memcached в файл;
  • -f
Устанавливает размер блока выделяемой памяти. Когда будут выделяться новые блоки памяти, размер новых блоков будет определен делением на дефолтовый размер блока памяти;
  • -n bytes
Минимальный размер выделяемой памяти = 48 килобайт;
  • -L
В системах, которые поддерживают большое фрагментирование памяти, разрешает эту фрагментацию. использование фрагментации позволяет memcached выделить память в один большой блок памяти, что позволяет уменьшить количество обращений к памяти и увеличить производительность.

  • Перевод статьи оригинала: Dev.MySQL

Немає коментарів:

Дописати коментар

Що таке база данних?

База данних — це спеціальна система зберігання, організації та пошуку інформації. Вона містить дані у вигляді таблиць, записів та інших стру...