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
测试架构

image

压测命令

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。

测试结论
image

  • sn1ne.4xlarge 的 pps 最高是 150w,此次压测 QPS 达到了 140w。此时所有的 CPU 利用率都接近 100%。(此处的QPS是通过tsar统计的。)

  • sn2ne.8xlarge 的 PPS 最高是 250w,此次压测 QPS 达到了 210w。此时所有的 CPU 利用率都接近 100% 了。

原文地址:https://www.cnblogs.com/baishuchao/p/9855781.html