Ok, I've got a question on slabs vs. main stats...

So here's one of my servers:

[r...@cc12-5 ~]# telnet 10.50.9.90 11213
Trying 10.50.9.90...
Connected to cc90-9.web.nap.ccops.us (10.50.9.90).
Escape character is '^]'.
stats
STAT pid 24458
STAT uptime 694639
STAT time 1241044888
STAT version 1.2.8
STAT pointer_size 64
STAT rusage_user 63.251384
STAT rusage_system 146.914665
STAT curr_items 754674
STAT total_items 2309096
STAT bytes 1860697442
STAT curr_connections 1044
STAT total_connections 846349
STAT connection_structures 1772
STAT cmd_flush 0
STAT cmd_get 6623750
STAT cmd_set 2309076
STAT get_hits 4234984
STAT get_misses 2388766
STAT evictions 53109
STAT bytes_read 4224402099
STAT bytes_written 4002657189
STAT limit_maxbytes 2097152000
STAT threads 2
STAT accepting_conns 1
STAT listen_disabled_num 0
END
^]
telnet> quit
Connection closed.


If you compare bytes and limit_maxbytes, it looks like this memcached
instance is 88.7% used.

But I wrote a quick script to grab the per-slab stats:

SERVER: 10.50.9.90:11213
SLAB    SIZE    #/page  #PAGES  #CHUNKS AVAIL   ASPACE  %USED
1       104     10082   15      151230  0       0       100.0%
2       136     7710    2       15420   0       0       100.0%
3       176     5957    6       35742   1       176     100.0%
4       224     4681    2       9362    4       896     100.0%
5       280     3744    1       3744    237     66360   93.7%
6       352     2978    48      142944  4       1408    100.0%
7       440     2383    23      54809   0       0       100.0%
8       552     1899    54      102546  1       552     100.0%
9       696     1506    18      27108   2       1392    100.0%
10      872     1202    46      55292   1       872     100.0%
11      1096    956     23      21988   0       0       100.0%
12      1376    762     20      15240   1       1376    100.0%
13      1720    609     62      37758   3       5160    100.0%
14      2152    487     14      6818    0       0       100.0%
15      2696    388     34      13192   0       0       100.0%
16      3376    310     18      5580    1       3376    100.0%
17      4224    248     3       744     59      249216  92.1%
18      5280    198     3       594     114     601920  80.8%
19      6600    158     2       316     35      231000  88.9%
20      8256    127     27      3429    0       0       100.0%
21      10320   101     59      5959    1       10320   100.0%
22      12904   81      145     11745   0       0       100.0%
23      16136   64      80      5120    2       32272   100.0%
24      20176   51      30      1530    0       0       100.0%
25      25224   41      16      656     0       0       100.0%
26      31536   33      19      627     0       0       100.0%
27      39424   26      240     6240    0       0       100.0%
28      49280   21      831     17451   0       0       100.0%
29      61600   17      20      340     0       0       100.0%
30      77000   13      30      390     0       0       100.0%
31      96256   10      56      560     0       0       100.0%
32      120320  8       84      672     0       0       100.0%
33      150400  6       1       6       5       752000  16.7%
TOTALS:                         755152  471     1958296 99.9%


As you can see, it's a slightly different story.  To see if it would
make a difference, I tried to figure out what the available space from
those 480 chunks would be, and compared that to the limit_maxbytes,
and it still seemed to come out around that same 99.9% level of
utilization.

So is that 99.9% the accurate number I should be using for
utilization?  (Or more accurately, should I calculate 1.) the total
size based on the total of (# chunks * size) for each slab,  and
compare it to 2.) the total available space based on the total of
( avail chunks * size) for each slab?)

And if that's accurate, is the rest of the space lost to the slab
allocation and overhead?

Now I'm debating if I should update memcache-top to report on actual
available space based on the slab stats, since that's a very different
number from the available space according to bytes vs.
limit_maxbytes... :)

Thanks,
Nicholas

Reply via email to