Memcached的管理
在以前写过了"搭建nginx + python + django +memcached+ mysql +fastcgi 环境"一文,有不少朋友问我关于memcached的管理的问题,比如查看memcached的运行情况等等,我们知道目前memcached没有直观的工具来查看整个运行情况,不过我们可以通过系统级--shell命令。
1、数据存储(假设key为dbasky.net,value为88888)
printf "set dbasky.net 0 0 5\\r\\n88888\\r\\n" | nc 127.0.0.1 11211
STORED
2、数据取回(假设key为dbasky.net)
printf "get dbasky.net\\r\\n" | nc 127.0.0.1 11211
VALUE dbasky.net 0 5
88888
END
3、数值增加1(假设key为dbasky.net,并且value为正整数)
printf "incr dbasky.net 1\\r\\n" | nc 127.0.0.1 11211
88889
4、数值减少3(假设key为dbasky.net,并且value为正整数)
printf "decr dbasky.net 3\\r\\n" | nc 127.0.0.1 11211
88886
5、数据删除(假设key为dbasky.net)
printf "delete dbasky.net\\r\\n" | nc 127.0.0.1 11211
DELETED
6、查看Memcached状态
[root@app3 ~]# printf "stats\\r\\n" | nc 127.0.0.1 11211
STAT pid 20272
STAT uptime 927901
STAT time 1256541017
STAT version 1.2.8
STAT pointer_size 64
STAT rusage_user 72323.142211
STAT rusage_system 270758.303481
STAT curr_items 2255461
STAT total_items 2237096141
STAT bytes 3865876133
STAT curr_connections 156
STAT total_connections 2662892830
STAT connection_structures 2975
STAT cmd_flush 0
STAT cmd_get 7155551459
STAT cmd_set 2237096141
STAT get_hits 6275571127
STAT get_misses 879980332
STAT evictions 21174550
STAT bytes_read 5936788593022
STAT bytes_written 12278494693042
STAT limit_maxbytes 4294967296
STAT threads 9
STAT accepting_conns 1
STAT listen_disabled_num 0
END
7、模拟top命令,查看Memcached状态:
watch "printf \'stats\\r\\n\' | nc 127.0.0.1 11211"
或者
watch "echo stats | nc 127.0.0.1 11211"
[root@app3 ~]# watch "printf \'stats\\r\\n\' | nc 127.0.0.1 11211"
Every 2.0s: printf \'stats\\r\\n\' | nc 127.0.0.1 11211 Mon Oct 26 16:11:26 2009
STAT pid 20272
STAT uptime 927970
STAT time 1256541086
STAT version 1.2.8
STAT pointer_size 64
STAT rusage_user 72327.750510
STAT rusage_system 270774.932953
STAT curr_items 2255435
STAT total_items 2237240981
STAT bytes 3865771193
STAT curr_connections 269
STAT total_connections 2663066932
STAT connection_structures 2975
STAT cmd_flush 0
STAT cmd_get 7156031867
STAT cmd_set 2237240981
STAT get_hits 6275980308
STAT get_misses 880051559
STAT evictions 21177694
STAT bytes_read 5937174840056
STAT bytes_written 12279303680177
STAT limit_maxbytes 4294967296
STAT threads 9
STAT accepting_conns 1
STAT listen_disabled_num 0
END
下面解释下各项的含意:
uptime 是memcached运行的秒数,cmd_get是查询缓存的次数。这两个数据相除一下就能得到平均每秒请求缓存的次数,cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内容,就会调用一下cmd_set写进缓存里。紧跟着是get_hits,就是缓存命中的次数。缓存命中率 = get_hits/cmd_get *100%。get_misses的数字加上get_hits应该等于cmd_get。而total_itemscurr_items表示现在在缓存中的键值对个数,在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了。
建议继续学习:
- 分布式缓存系统 Memcached 入门 (阅读:14700)
- 30分钟3300%性能提升――python+memcached网页优化小记 (阅读:12109)
- Cacti 添加 Memcached 监控 (阅读:8095)
- Redis和Memcached的区别 (阅读:6740)
- 启用memcached压缩注意事项 (阅读:4063)
- Memcached内存管理机制浅析 (阅读:3987)
- memcached 源码阅读笔记 (阅读:3615)
- Memcached and MySQL (阅读:3242)
- Memcached的线程模型及状态机 (阅读:3241)
- Memcached二三事儿 (阅读:3112)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Mike.Xu 来源: DBA Blog
- 标签: Memcached
- 发布时间:2009-11-06 13:26:47
- [68] 如何拿下简短的域名
- [68] Go Reflect 性能
- [64] Oracle MTS模式下 进程地址与会话信
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [61] 图书馆的世界纪录
- [60] 【社会化设计】自我(self)部分――欢迎区
- [59] android 开发入门
- [54] 视觉调整-设计师 vs. 逻辑
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 界面设计速成