nginx优化
1、nginx打开文件数限制
修改nginx.conf
worker_rlimit_nofile 51200;events {worker_connections 51200;}
之后重载nginx:service nginx reload
2、Linux系统文件限制
我们先看一下系统的限制打开文件数
执行:ulimit –n
如果太低的话可以进行修改,执行:vim /etc/security/limits.conf
更改参数:
soft nofile 65535hard nofile 65535soft nproc 65535hard nproc 65535
注:系统限制可以随便改,我只要比nginx的打开文件数大就好。
3、nginx的fastcgi连接时间太短
一般nginx响应php,都是通过FastCGI接口来调用,所以fastcgi参数配置很重要,当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器,而很多php的网页都是采用动态程序。所以fastcgi的配置,也起的至关重要的作用。所以这是一个优化不可缺少的一部分。
修改nginx.confhttp{}中修改内容:
fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;
之后重载nginx:service nginx reload
PHP优化
1、查看php-fpm的工作模式
打开/usr/local/php/etc/php-fpm.d下的www.conf文件,我们可以看到如下配置:
pm = dynamic
表示php启用的动态模式,默认是动态模式,还有静态模式(static)
其他参数分析:
pm.max_children 表示静态下最大线程数,静态模式下只有该参数有效
pm.start_servers 表示动态下启动时的线程数,该参数大于pm.min_spare_servers,小于pm.max_spare_servers,默认值是(最大-最小)/2
pm.min_spare_servers 表示动态下最小空闲线程数
pm.max_spare_servers 表示动态下最大空闲线程数
模式比较:
静态模式的话,比较适合一些内存比较大一点的服务器,8G及以上的,因为对于比较大内存的服务器来说,设置为静态的话会提高效率。
动态模式适合小内存机器,灵活分配进程,省内存。可以让php自动增加和减少进程数,不过动态创建回收进程对服务器也是一种消耗。
2、根据自己服务器的内存大小修改适合的模式
按理来说php的最大的进程数,大概是本地内存/40,因为也要考虑系统占用内存的的这种情况,我们不能直接把除处理的结果,当成的最大进程数。8G内存的,所以按理来说是,最大的php进程数是200左右。但是考虑到内存泄漏的问题,我们可以设置为120-150左右
再查看进程数netstat -anpo | grep php-fpm | wc -l
