下文涉及到的相关模块的安装,请参见Nginx源码安装
1. worker_processes
- 建议配置
# nginx.conf
# 工作进程数,建议设置为CPU核数
worker_processes 8;
# 工作进程绑定的核,建议一个工作进程绑定一个核
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#指定进程可以打开的最大描述符,最好与ulimit -n 的值保持一致
worker_rlimit_nofile 1048576;
events {
# 使用epoll的I/O 模型
use epoll;
#工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行
#每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections
worker_connections 65536;
}
-
测试
worker_processes 测试结果OS:CentOS release 6.5 (Final) CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存:64G Nginx:1.6.0 压测工具:https://pts.aliyun.com/lite/index.htm 压测参数:线程(2000) * 施压机(5) * 执行时长(1min)
-
结论
结论1:worker_processes最好设置为CPU核数 结论2:Nginx单台TPS大约为6W
2. TCMalloc
- 建议配置
# nginx.conf
# google_perftools的线程目录
google_perftools_profiles /data/greentea/tmp/tcmalloc/tcmalloc;
- 测试
OS:CentOS release 6.5 (Final)
CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
内存:64G
Nginx:1.6.0
压测工具:https://pts.aliyun.com/lite/index.htm
压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
TCMalloc 测试结果
- 结论
结论1:开启TCMalloc,性能有显著提升
3. Real IP
- 相关配置
# nginx.conf
# 还原用户真实IP
set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 192.168.0.0/16;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
- 测试
OS:CentOS release 6.5 (Final)
CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
内存:64G
Nginx:1.6.0
压测工具:https://pts.aliyun.com/lite/index.htm
压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
Real IP 测试结果
- 结论
结论1:RealIP模块无明显性能损耗。(建议开启)
4. GEO
- 相关配置
# nginx.conf
# 计算IP所在城市
geo $remote_addr $geo_is_beijing {
default 0;
1.2.2.0/24 1;
1.2.5.0/24 1;
1.2.8.0/24 1;
1.4.4.0/24 1;
1.8.0.0/16 1;
}
- 测试
OS:CentOS release 6.5 (Final)
CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
内存:64G
Nginx:1.6.0
压测工具:https://pts.aliyun.com/lite/index.htm
压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
GEO 性能测试
- 结论
结论1:GEO模块无明显性能损耗。(测试区分北上广杭)
网友评论