#memcached
#memcached
Вопрос:
Я пытаюсь понять поведение memcached, запустив memaslap против него.
Команда, которую я использую, является
memaslap -s localhost:11212 -T 64 -c 64 --verbose -S 1s -t 30s
и это результат, который я получаю (на локальном компьютере)
Get Statistics (3157196 events)
Min: 36
Max: 17957
Avg: 545
Geo: 533.99
Std: 167.05
Log2 Dist:
4: 0 0 11 271
8: 2813 1379137 1706845 66407
12: 1110 446 152 4
Set Statistics (350829 events)
Min: 60
Max: 16184
Avg: 547
Geo: 536.33
Std: 161.65
Log2 Dist:
4: 0 0 3 28
8: 313 151210 191252 7861
12: 112 40 10
Total Statistics (3508025 events)
Min: 36
Max: 17957
Avg: 545
Geo: 534.22
Std: 167.17
Log2 Dist:
4: 0 0 14 299
8: 3126 1530347 1898097 74268
12: 1222 486 162 4
cmd_get: 3157252
cmd_set: 350837
get_misses: 1716802
written_bytes: 608669765
read_bytes: 1610227982
object_bytes: 381710656
Run time: 30.0s Ops: 3508089 TPS: 116914 Net_rate: 70.5M/s
Как вы можете видеть, у меня есть get_misses, которые составляют 1716802, что составляет более 50% запросов get, отправленных memaslap. Мне любопытно, что означает get_miss. Я проверил документы на
http://docs.libmemcached.org/bin/memaslap.html
и прямо говорит
get_misses
Сколько объектов не может быть получено с сервера Что значит не получать ключ с сервера? Это потому, что ключ отсутствует или это из-за задержек? Если это из-за отсутствия ключа, что именно проверяет memaslap, отправляя этот запрос?
Комментарии:
1. Здравствуйте, у меня есть вопрос, связанный с запуском
memaslap
команды. Удалось ли вам запустить его сразу после установкиlibmemcached-dev
библиотеки?2. Привет @AnaKhorguani, да. Но не уверен, что раздел комментариев SO является местом для общения
3. Спасибо. Да, извините, у меня была проблема с запуском
memaslap
, и я нашел только очень мало обсуждений по этому поводу. Вот почему я прокомментировал.
Ответ №1:
Здесь указано, сколько раз мы пропускали кэш при выполнении команды get, другими словами — сколько раз ключ не был найден.
Основная причина, по которой происходят промахи в кэше, — это удаление. Memcached удаляет некоторые элементы из памяти, чтобы освободить место для новых.
Количество get_misses
должно уменьшиться, если memcached будет использовать больше оперативной памяти (например: -m 1G
для 1 Гб оперативной памяти)