昨天公司培训LNMP优化,这里记录一下笔记,志在给大家提供一下LNMP的优化方向。所谓的LNMP,是指linux,nginx,mysql,和PHP,由于其开源的关系,受到大多数中小企业的青睐。
linux优化
- 关闭不必要的服务
- 合理设置open files打开文件数
在linux中,一切都是文件 - 合理设置max user processes 打开进程数
PS:进程是链表,如果用户进程数已经达到max user processes,就不能在创建进程了 - 合理设置tcp_keepalive_time keepalive时间
- netfilter.nf_conntrack_max iptables
nginx优化
- 合理设置worker_processs
worker_processs是nginx的工作进程,配置跟CPU的内核数量有关,比如CPU是4核的,可以将worker_processs设置为8 - 合理设置worker_connections
worker_connections是每个worker可以同时接受多少个连接,如果设置太小,将无法响应过多的请求
php-fpm优化
- 合理设置pm.max_children
pm.max_children是指php的进程数,由于php是阻塞的,1个进程只能同时处理一个php请求,max_children设置高可以同时处理更多的请求,但也意味着会占用更多的服务器资源 - 合理设置pm.max_requests
pm.max_requests,表示php进程处理多少个进程后重新启动,可以解决php内存泄露的问题。但如果这个值设置太小,造成php频繁重启,也会对性能造成影响