优化方法论

cpu
增大 nginx 使用 cpu 有效时长

- worker_processes 指令

- 减少进程切换
- 增大进程优先级
- 绑定 cpu
- 延迟处理新连接
多核间负载均衡
worker 间均衡

缓存命中率
- worker_cpu_affinity

NUMA 架构

tcp

syn_sent

syn_rcvd



tcp_syncookies

文件描述符上限

worker 进程最大连接数量
- worker_connections
两个队列长度

tcp fast open


滑动窗口


发送 tcp 消息

接收 tcp 消息

发生 cs

重传

缓冲区


BDP
- bdp = 带宽 x 时延
- 吞吐量 = 窗口 / 时延

nagle 算法

- postpone_output
cork 算法

流量控制


RTT, RTO

keepalive

关闭连接



tcp_tw_reuse

tcp_tw_recycle = 0

lingering_close 延迟关闭

- 避免发送 rst

tls 优化


http 长连接

使用 http2
磁盘 io

减少磁盘 io

直接 io

- 大文件, 直接 io

异步 io


异步读 io 线程池


异步 io 中的缓存

减少磁盘读写次数
- empty_gif 模块

access 日志压缩
- access_log 指令
error.log 日志输出内存
syslog 协议

sendfile 零拷贝

tcmalloc

stub_status 模块监控 nginx

