优化原则
尽可能占用全部的CPU资源
尽可能占用更大的CPU时间片,减少进程间切换
优化策略
指定worker子进程个数
worker_processes auto;
将worker子进程与每个CPU绑定
worker_cpu_affinity 01 10 01 10;
也可以使用worker_cpu_affinity auto;
提高worker子进程的进程优先级
worker_priority -20;
延迟处理新连接
listen 80 deferred;
##TCP内核参数
net.ipv4.tcp_syn_retries = 6(调小参数)
net.ipv4.tcp_synack_retries = 5(调小)
net.ipv4.tcp_syncookies = 0
net.core.somaxconn(调大)
net.core.netdev_max_backlog=65535
net.ipv6.tcp_max_syn_backlog=65535
Nginx对应参数
listen 80 backlog=248000;
请求阻塞时挂起队列数
启用TCP的Fast Open
Linux 内核参数 net.ipv4.tcp_fastopen =3;
ab接口压力测试工具
yum install httpd_tools
ab -n 2000 -c 2 http://127.0.0.1
-n 总的请求数
-c 并发数
-k 是否开启连接数
文件句柄优化
文件句柄
Linux\Unix 一切皆文件,文件句柄就是一个索引
设置方式
系统全局性修改,用户局部性修改,进程局部性修改
/etc/security/limits.conf
进程局部性设计
worker_rlimit_nofile 65535;
减少字符集报错
http{
charset utf-8
}
Q.E.D.