摘要
在我的博客PHPCMS开启memcache缓存篇章中部分描述了一下在LNMP下如何安装memcache,本章介绍如何监控和测试memcache的运行状态。
命令监控
前沿
接下来介绍如何通过命令去监控memcache,而且会列上相关参数信息
登录到已经安装了memcache服务器,利用以下命令得出相关信息telnet 127.0.0.1 11211
stats
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 stats
STAT pid 2206
STAT uptime 1111
STAT time 1471592501
STAT version 1.4.25
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 0.298954
STAT rusage_system 0.432934
STAT curr_connections 5
STAT total_connections 826
STAT connection_structures 9
STAT reserved_fds 20
STAT cmd_get 3362
STAT cmd_set 123
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 3331
STAT get_misses 31
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 603178
STAT bytes_written 8421667
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 252233
STAT curr_items 64
STAT total_items 123
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
END
图例了解主要的参数信息
get_hits表示读取cache命中的次数,get_misses是读取失败的次数,即尝试读取不存在的缓存数据。即:命中率=get_hits / (get_hits + get_misses)
命中率越高说明cache起到的缓存作用越大。但是在实际使用中,这个命中率不是有效数据的命中率,有些时候get操作可能只是检查一个key存在不存在,这个时候miss也是正确的,这个命中率是从memcached启动开始所有的请求的综合值,不能反映一个时间段内的情况,所以要排查memcached的性能问题,还需要更详细的数值。但是高的命中率还是能够反映出memcached良好的使用情况,突然下跌的命中率能够反映大量cache丢失的发生
PHP代码测试
本部分是通过编写一个PHP代码文件,来是测试memcache是否执行,其实测试的原理是:当您服务器安装了memcache后,PHP就已经支持相关代码接口对象的调用和测试,所以可以简单的编写一个memcache的代码调用测试文件进行测试,将编写好的php文件放到你的php环境里面,并在web环境下访问测试
注意
memcache和memcached的调用接口是不一样的,相关细节代码接下来说
编写testpp.php
memcache代码:
1 |
|
memcached代码
1 |
|
当你在你访问你的网页http://ip/testpp.php,成功显示check mencache或者check mencached代表您的mencache已经成功显示
监控工具
在这里给大家提供一个外面大牛编写的监控工具点击下载memcache.php,使用方式,解压文件memcache.php 放到你的网站PHP网站目录,修改如下部分以使用此页面监控memcache运行状态
找到以下代码:
1 | $VERSION='$Id: memcache.php,v 1.1.2.3 2008/08/28 18:07:54 mikl Exp $'; |
编写好memcache.php 在放到你的网站服务器访问
http://ip/memcache.php
你会得到以下界面:

自定义设置
通常你可能需要扩展memcache的缓存大小或者其他参数,如何设置,其实Memcache提供相关的命令如下:
你可以通过ps -aux|grep memcache获取对应命令进程信息,加以修改。
1 | [root@localhost ~]# ps -aux |grep memcache |
你会发现,通过lnmp的安装,会默认使用如下命令运行memcache
/usr/local/memcached/bin/memcached -d -l 127.0.0.1 -p 11211 -u root -m 64 -c 1024 -P /var/run/memcached.pid
你可以删除此进程,并修改此命令重新运行,便可以实现对memcache的主要参数设置并运行已达到你对缓存的要求。
我们先来解释这几个参数的含义吧。
-m 指定缓存所使用的最大内存容量,单位是Megabytes,默认是64MB
-u 只有以root身份运行时才指定该参数
-d 以daemon的形式运行
-l 指定监听的地址
-p 指定监听的TCP端口号,默认是11211
其他常用的参数
-t 指定线程数,默认是4个
-h 打印帮助信息
-c 最大同时连接数,默认是1024.
-U 指定监听的UDP端口号,默认是11211
-M 内存耗尽时显示错误,而不是删除项
一开始说的“-d”参数需要进行进一步的解释
-d install 安装memcached
-d uninstall 卸载memcached
-d start 启动memcached服务
-d restart 重启memcached服务
-d stop 停止memcached服务
-d shutdown 停止memcached服务
结语
如果你还需要了解更多技术文章信息,请继续关注Jory博客