了解memaslap中的get_misses

时间:2016-10-19 01:33:46

标签: memcached

我试图通过运行memaslap来了解memcached的行为。

我使用的命令是

 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,超过了memaslap发送的get请求的50%。我很好奇get_miss意味着什么。我检查了文档 http://docs.libmemcached.org/bin/memaslap.html 并且明白地说

  

get_misses

     

无法从服务器获取多少个对象   不从服务器获取密钥是什么意思?是因为密钥不存在还是因为延迟?   如果是因为密钥不存在,那么通过发送此请求究竟是什么memaslap测试?

1 个答案:

答案 0 :(得分:0)

它表示在运行get命令时我们有多少次缓存未命中,换句话说 - 找不到密钥的次数。

缓存未命中的主要原因是驱逐。 Memcached会抛出一些内存不足的空间来为新的空间腾出空间。

如果memcached将使用更多的RAM(例如:get_misses用于1 Gb的RAM),-m 1G的数量应该下降