目录
一:查找和配置
(一)根据慢日志找到执行时间长的程序
(1)慢日志配置
request_slowlog_timeout = 2
slowlog = var/log/slow.log
(2)查询
grep -v "^$" slow.log | cut -d " " -f 3,2 | sort | uniq -c | sort -k1,1nr | head -n 50
查询慢日志最多的50个url
二:优化
(1)优化程序
(2)参数优化
pm = dynamic
pm.max_children = 150 最大进程数
pm.start_servers = 100 初始化进程数
pm.min_spare_servers = 50 最小空闲进程
pm.max_spare_servers = 150 最大空闲进程
pm.max_requests = 102400 每个进程最大处理请求( 是每个进程处理多少个请求后重启(因为 PHP 偶尔会有内存泄漏,所以需要重启))
request_terminate_timeout = 60 超时时间 (这个是脚本执行最长时间,如果超过时间nginx会杀掉主进程,返回客户端502,所有如果服务器端没bug,尽量设置时间长点)
nginx-fpm是多进程(每个进程只有一个线程)
(3)nginx.conf多核cpu优化
四核
worker_processes 3;
worker_cpu_affinity 0010 0100 1000;
这意思就是开启另外三个进程分别分配到cpu1,cpu2,cpu3
worker_processes auto; 让nginx自动分配 好像都分配到cpu0上去了
两核
worker_processes 2;
worker_cpu_affinity 01 10;
两核开启8进程
worker_processes 8;
worker_cpu_affinity 01 10 01 10 01 10 01 10;