NGINX压力测试
Nginx可以作为HTTP服务器和反向代理服务器。反向代理服务器取决于后端服务器的性能,这次只针对HTTP服务器做性能测试。Nginx作为服务器对于网络的性能必然是非常依赖的,尤其是PPS转发能力,那么网络增强型实例必然是首选。
在 10G 网络带宽下,推荐独享实例规格族如下:规格族 ecs.sn1ne(Nginx 对内存要求不高,不需要规格族ecs.sn2ne); 在 25G 网络带宽下,推荐实例规格族: 规格族 C5。
测试验证
测试方法
- 操作系统:Centos 7.3 (默认打开irqbalance)
- 测试软件: Nginx 1.12.1
- 压测工具:ApacheBench 2.3
测试对象
- ecs.sn1ne.4xlarge 16C/32GB
- ecs.sn1ne.8xlarge 32C/64GB
测试架构
压测命令
32个并发命令: ab -n 100000000 -c 10 -k http://${server_ip}/
参数调整
系统参数调整
打开多队列。
开启 RPS。
经过测试发现,16 核的时候,不需要开启RPS特性,就可以把所有 CPU 打满,网络达到极限;但是测试 32 核的时候,需要开启 RPS。
修改文件打开数。
Nginx 参数调整。
打开多进程。Nginx默认是单work进程。
在 nginx.conf 文件中可以配置如下:
worker_processes 32;
worker_cpu_affinity auto;
增大连接数:配置 worker_connections 102400。
测试结论
-
sn1ne.4xlarge 的 pps 最高是 150w,此次压测 QPS 达到了 140w。此时所有的 CPU 利用率都接近 100%。(此处的QPS是通过tsar统计的。)
-
sn2ne.8xlarge 的 PPS 最高是 250w,此次压测 QPS 达到了 210w。此时所有的 CPU 利用率都接近 100% 了。