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% 了。

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

时间: 2024-12-24 22:16:34

NGINX压力测试的相关文章

Nginx压力测试工具之WebBench

Nginx压力测试工具之WebBench 在Apache中有自带的ab命令可以测试服务的压力,而nginx没有自带的命令,必须要采用第三方软件来测试,今天就简单介绍一下webbench对nginx的压力测试,压力测试是对系统管理员和运维人员必须的,可以很清晰地看清服务器能接受多大压力.注:本人是在虚拟机上做测试. 1.下载webbench软件和安装 wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar xv

nginx压力测试及防止恶意压力测试的方法

nginx压力测试方法: #ab命令 #安装ab #Centos系统 yum install apr-util #Ubuntu系统 sudo apt-get install apache2-utils #ab命令的参数 -n //在测试会话中所执行的请求个数.默认为1 -c //一次产生的请求个数.默认为1 -t //测试所进行的最大秒数.默认值为50000 -p //包含了需要的POST的数据文件 -T //POST数据所使用的Content-type头信息 #实例 ab -c 1000 -n

记一次压力测试和对nginx/tomcat配置的调整

原文地址:还没找到 是一个web系统,前端使用nginx做为反向代理,处理https,并将请求转发给后端的tomcat服务. 压力测试工具选择了jmeter. 首先简单介绍一下jmeter. 它是apache的一个开源项目,基于java swing开发的GUI界面. jmeter提供了许多高级的功能,但我们仅仅使用了jmeter最简单的功能.在简单的jmeter使用中,我们涉及到这么几个概念:测试计划,线程组,测试任务,和Listener.看下面的图:  在一个名为“测试”的测试计划下, 我们建

记录一次自己对nginx+fastcgi(fpm)+mysql压力测试结果

nginx + fastcgi(fpm) 压力测试: CentOS release 5.9 16核12G内存 静态页面: 并发1000,压测200秒,测试结果: 系统最大负载5.47 成功响应: 2563065, 502:0, 失败:0 PHP页面(对mysql进行一次带索引的查询,数据库记录500条): 并发1000,压测200秒,测试结果: 系统最大负载15.66 成功响应: 114368, 502:712, 失败:58715 并发200,压测200秒,测试结果: 系统最大负载25.81 成

Nginx服务器防止被压力测试

最近经常用人帮忙做压力测试,用webbech或者ab等一些工具模拟并发压服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨.cat nginx.conf…http {…limit_conn_zone $binary_remote_addr zone=one:10m;#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告nginx: [warn] the“limit_zone” directive is deprecated, use th

nginx优化压力测试

Nginx优化 Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理.负载平衡.但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞.所以必须使用FastCGI方式来执行PHP程序. 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. 一.Nginx的优化 1.编译安装前优化 编译前的优化主要是用来修改程序

nginx优化php-fpm优化 压力测试达到每分150万访问量webbench网站压力

webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装:引用wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install 3.使用:引用webbench -c 10000 -t

Nginx(防止压力测试的恶意攻击)

ab压力测试工具命令: ab -c 100 -n 1000 http://127.0.0.1/index.html 防止压力测试的恶意攻击的思路: nginx限制同一个IP的并发最大为10, vi /usr/local/nginx/conf/nginx.conf 在http{} 字段第一行添加: limit_conn_zone $binary_remote_addr zone=one:10m; 在对应的server{}里添加: limit_conn one 10; 最后重启nginx,有两种方法

Nginx使用webbench进行压力测试

在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相 同.面对这些问题,我们只能尽量去想方设法去模拟.所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数. 目前较为常见的网站压力测试工具有webbench.ab(apache ben