Для начала использования
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 поддерживает следующие опции:
Если вы запускаете
memcached как root, используйте опцию
-u, для обозначения пользователя, который запустит
memcachedshell> memcached -u memcache
Установите количество выделяющейся памяти, по дефолту 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
Определяет сетевой интерфейс/адрес для прослушивания соединений. По дефолту стоит на прослушку всех свободных адресов (INADDR_ANY).
shell> memcached -l 192.168.0.110
Поддержка IPv6 была добавлена в версии memcached 1.2.5
Определяет TCP порт, используемый для соединений. По дефолту: 18080.
shell> memcached -p 18080
Определяет UDP порт, используемый для соединений. По дефолту: 0 (выключен);
shell> memcached -U 18080
Определяет Unix socket используемый для прослушки.
Если вы запустили
memcached на одном сервере, вы можете отключить сетевой интерфейс и использовать локальный Unix socket, для этого надо воспользоваться
-s опцией.
shell> memcached -s /tmp/memcached
Использование сокета автоматически отключает сетевой интерфейс и сохраняет открытыми порты;
Определяет маску доступа для Unix socket в восьмеричной системе. По дефолту 0700;
Определяет максимальное число одновременных подключений, по дефолту 1024;
shell> memcached -c 2048
Вы должны использовать данную опцию, также для уменьшения количества одновременных подключений к
memcached, для улучшения работы сервера;
Определяет количество потоков, для обработки входящих запросов. По умолчанию,
memcached сконфигурирован с использованием 4 конкурентных потоков. Потоки улучшают процесс сохранения и отдачи даты в кеш и из кеша. Используйте замыкающую систему, для предотвращения перезаписи различных потоков или апдейта одинаковых данных. Вы можете увеличить или уменьшить количество потоков используя опцию
-t;
shell> memcached -t 8
Запускает
memcached как демон бэкграунд процесс;
shell> memcached -d
Увеличить размер файла ядра. В случае краша системы, эта опция позволит задампить всю выделенную память на диск, несмотря на установку setrlimit;
Возвращает ошибку клиенту, в случае когда память закончилась. Эта опция обходит нормальную работу
memcached, когда старые элементы замещаются новыми;
Ограничение памяти;
Пользовательское ограничение по количеству выделяемой памяти. Попытка выделить больше памяти, чем разрешено приведет к ошибке. Вы можете установить лимит тому пользователю, при помощи которого стартуете демон (для -u user) вместе с шелом ulimit -S -l NUM_KB
Отладочный режим (
verbose mode). Печатает ошибки и замечания, пока запускается главный цикл;
Вдвойне отладочный режим. В дополнение к режиму
-v печатает каждую клиентскую команду и ответ на нее;
Печатает справку и выходит;
Печатает
memcached и
libevent соглашения;
Запускает контроллируемую сущность;
Сохраняет ID процесса
memcached в файл;
Устанавливает размер блока выделяемой памяти. Когда будут выделяться новые блоки памяти, размер новых блоков будет определен делением на дефолтовый размер блока памяти;
Минимальный размер выделяемой памяти = 48 килобайт;
В системах, которые поддерживают большое фрагментирование памяти, разрешает эту фрагментацию. использование фрагментации позволяет
memcached выделить память в один большой блок памяти, что позволяет уменьшить количество обращений к памяти и увеличить производительность.