优化原则

尽可能占用全部的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.