关于Php的优化参数有如下几个:
pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers
pm = dynamic #对于专用服务器,pm可以设置为static。
#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定:
pm.max_children #,子进程最大数
pm.start_servers #,启动时的进程数
pm.min_spare_servers #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
在这里,我设置的取值如下:
root@test1:~# vim /etc/php5/fpm/pool.d/www.conf
.....
pm = static #把pm值改为static,默认是dynamic
pm.max_children = 1 #把pm.max_clildren的值修改为“1”,默认是“5"
root@test1:~# /etc/init.d/php5-fpm restart
[ ok ] Restarting php5-fpm (via systemctl): php5-fpm.service.
root@test1:~# ps aux | grep php-fpm
root 13235 0.0 1.3 93524 14016 ? Ss 16:29 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 13238 0.0 0.6 93524 6428 ? S 16:29 0:00 php-fpm: pool www
root 13258 0.0 0.1 12944 1984 pts/1 S+ 16:29 0:00 grep php-fpm
#现在就只有一个php-fpm的工作进程了
通过观察,一个nginx的worker进程占用约4MB内存,一个php-fpm占用约6.5MB内存,通过计算优化后可节约内存=4MB*4+6.5=22.5MB的内存大小。
6、总结
现在公司的系统环境慢慢在从CentOS向Debian上迁移,对从没有接触过Debian系统的我来说,还需要一个适应过程,通过这段时间的使用,发现Debian与Centos在使用上还是有许多的不同,这次搭建php环境时就遇到一些问题。
MemAdmin中文界面,操作十分简单,但我在使用中发现几个问题,比如:只能写入数据,而不能读取数据,对状态监控时的刷新时间间隔不生效等。
还有一款简洁的memcached的状态监视工具也不错,叫memcachephp-master,能实现获取KEY所对应的VALUE值,正好弥补我这里MemAdmin不能获取值的不足。此工具部署也很简单,此处就不再演示。
相关附件在Linux公社资源站下载
------------------------------------------分割线------------------------------------------
具体下载目录在 /2016年资料/1月/25日/Debian8(amd64)安装部署Memcached管理工具MemAdmin/
------------------------------------------分割线------------------------------------------
Ubuntu下安装Memcached及命令解释