PS:本章节我将采用在3M客户现场的实际项目经验与测试结果来展示对应可优化参数
测试环境:
| 测试设备 | 配置 | IP地址 |
|---|---|---|
| Client | 2 Core 2G Mem | 10.1.10.51 |
| NGINX LB (R22) | 4 Core 4G Mem | 10.1.10.204 |
| NGINX Web Server (R22) | 4 Core 4G Mem | 10.1.10.205/10.1.20.205 |
| wrk -c 100 -t 2 -d 1m http://10.1.10.205/picturefill.js | ||
| wrk -c 100 -t 2 -d 1m http://10.1.10.204/picturefill.js |
压测所用web资源:picturefill.js
结果汇总:
| 优化场景 | Request/Second | Latency ms (Avg) |
|---|---|---|
| 直接压服务器 | 59846 | 2.43 |
| NGINX默认配置 | 23083 | 25.24 |
| 优化Worker Connection | 22948 | 18.67 |
| 配置连接复用 | 41968 | 2.37 |
| 配置CPU亲和及Worker优先级 | 41289 | 2.58 |
| 配置日志缓存 | 46668 | 2.28 |
| 配置Cache | 42945 | 2.44 |
| 优化CPU开销 | 44847 | 2.45 |


优化一:直接进行压力测试
保持nginx默认配置不变:

优化二:优化worker_connections

优化三:配置链接复用
开启连接复用前server端连接数
开启连接复用后server端连接数

优化四:配置CPU亲和及worker优先级

优化五:配置日志缓存

优化六:配置Cache

优化七:优化cpu开销

