先使用:ps aux 查看各进程内存使用情况.
php-fpm的重启/关闭
php 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例:
代码如下 | 复制代码 |
php-fpm 关闭: kill -INT `cat /usr/local/php/var/run/php-fpm.pid` php-fpm 重启: kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 查看php-fpm进程数: ps aux | grep -c php-fpm |
***************************************************************
php-fpm4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和 pm.max_spare_servers之间调整php-fpm进程数
代码如下 | 复制代码 |
request_terminate_timeout = 120 |
#表示等待120秒后,结束那些没有自动结束的php脚本,以释放占用的资源。
我的设置
代码如下 | 复制代码 |
pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 15 |
下面附一个nginx优化方法
只开启一个进程
Nginx每个进程都要耗费内存,可能有10M至15M左右,小内存就只开一个节省内存
worker_processes 1;
开启gzip压缩
对网页文件、CSS、JS等开启gzip雅座,减少数据传输量、减少磁盘I/O、减少内存交换,节省内存提高访问速度。
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
改变FastCGI通信方式
将Nginx的FastCGI的通信改成Unix Socket。TCP方式在高并发下稳定,但比Unix Socket方式慢。
代码如下 | 复制代码 |
#fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; |
缓存部分文件
如图片、CSS、JS不常更新的是文件可以缓存到浏览器下。
代码如下 | 复制代码 |
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico|css|js)${ expires 30d; } |