超简易的内存与phpcgi监控

偶然间翻看自己的一台VPS上的Cron脚本,发现一个每分钟定时跑的脚本,想了半天不知道是做什么的,后来打开发现,原来是N久之前弄的一个监控,当时有5台VPS,4台搭建了Nginx,做负载均衡,1台入口,3台负载,还有1台DB,因为单机经常502,所以做了负载均衡,为了看效果如何,准备监控一下内存和phpcgi,所以就有了这个。

原理就是调用系统命令查询相应的数值,然后写成本地文件,再有PHP+JS进行画图,画图用了2个插件,一个是jqChart,后来感觉不太好看,所以用了amcharts.

看一下shell

1
2
3
4
5
6
7
8
not=`(date "+%H:%M")`
phpcgi=`(netstat -anpo |grep "php-cgi" |wc -l)`
usmem=`(cat /proc/meminfo |grep MemFree | awk '{print $2}')`
tomem=`(cat /proc/meminfo |grep MemTotal | awk '{print $2}')`
mem=`(awk 'BEGIN{printf "%.2f\n",'$usmem'/'$tomem'}')`
indb=$not'|'$phpcgi'|'$mem'|'
ddd=`(date +"%m%d")`
echo $indb >>/www/p/logs/$ddd.txt

记录内存使用情况和php-cgi个数

PHP就很简单了,就是读取一下相应的文件,然后作图。其中每个图都是在负载的机器上,我顺便在入口机上做个静态页面,嵌入这些图,全展示在一屏,很有我公司监控的味道,后来想顺道加上报警等机制,一耽搁就散伙了。

源码:

截图:

最后在说一下优化后php-fpm的配置采用dynamic(apache-like)方式

apache-like

相关的3个参数分别设置为:

10
10
25

三个参数的意义:

StartServers:动态方式下的起始php-fpm进程数量。
MinSpareServers:动态方式下的最小php-fpm进程数量。
MaxSpareServers:动态方式下的最大php-fpm进程数量。

BTW:用apache-like后max_children参数就没用了

改成这样的设置以后,效果好多了..仅是好多了…