一:LNMP可以进行简单优化,主要2方面。NGINX和PHP进程数,分别是以下2个文件:
1. /usr/local/nginx/conf/nginx.conf
2. /usr/local/php/etc/php-fpm.conf
1.在nginx.conf中worker_processes默认是 1;可以修改成2或3个
ps:不是越大越好。只运行网站的话默认1个处理数据速度最快。nginx不需要像apache那样开启过多的线程来保证其稳定运行。
2.在php-fpm.conf中需要修改下面几个参数:
php-fpm.conf中有两个至关重要的参数:
一个是”max_children”,另一个是”request_terminate_timeout”
”max_children”默认好像是5个
126M内存默认即可
256M 12个
512M 25个
1G 40个
”request_terminate_timeout”默认好像是0s
机器内存大性能好可以保持默认,性能一般的话
可以设置为900s
优化后,使用以下命令重新启动lnmp。
/root/lnmp restart
二:Mysql禁用日志
修改 /etc/my.cnf 文件
在log-bin=mysql-bin和binlog_format=mixed
这两行前面加#注释掉即可。
三:修改最大同时连接数有下面三种修改方式:
1》在/etc/rc.local 中增加一行 ulimit -SHn 65535
2》在/etc/profile 中增加一行 ulimit -SHn 65535
3》在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
具体使用哪种,试试哪种有效,CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果。
四:知其然知其所以然,深入学习篇
如果想深入了解个参数的意义可以继续观看下面的解析
一:php-fpm.conf详细解析篇:
pm = static (静态模式)时只需修改 max_children数值
pm = dynamic (动态模式)时只需修改其它三个数值
pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
设置”max_children”需要根据服务器的性能进行设定,每一个php-cgi所耗费的内存在20M左右,因此我的”max_children”我设置成20个,20M*20=400M也就是说在峰值的时候所有PHP-CGI所耗内存在400M以内,低于我的有效内存512mb。这样能保证,在PHP大并发的情况下不会502错误。
设置”request_terminate_timeout”如果你的服务器性能足够好,且宽带资源足够充足的话你可以直将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。而如果你做不到这一点,也就是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其他的原因导致你的PHP-CGI能够假死那么就建议你给”request_terminate_timeout”赋一个值,这个值可以根据你服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分钟都可以。由于我的服务器PHP脚本需要长时间运行,有的可能会超过10分钟因此我设置了900秒,这样不会导致PHP-CGI死掉而出现502 Bad gateway这个错误。
二.修改最大同时连接文件数
系统默认是1024,最好改大些
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三种修改方式:
①在/etc/rc.local 中增加一行 ulimit -SHn 65535
②在/etc/profile 中增加一行 ulimit -SHn 65535
③在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
具体使用哪种,试试哪种有效吧,CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果。