Понимание get_misses в memaslap

#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 Гб оперативной памяти)