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
