ab压测与siege压测

怎样正确做 Web 应用的压力测试? 对于一些性能有高要求的公司,比方说七牛云,据说他们只接受网络IO这一瓶颈,压测的时候,是一定要把千兆网卡跑满,才算是性能达标;当然,也可以考虑直接在服务器本机上面跑压测程序,这样就可以规避掉网络层的,更有针对的去看服务器应用的性能;首先,ab是单线程程序,只能利用单一CPU,在给性能好的服务器端应用做压测时,往往跑ab的测试机负荷满了;也就是说,当瓶颈得到改善的时候,系统的性能可以得到提高。我会认为,压测的目的是在于找到系统的瓶颈,一定是要确定系统某个方面达到瓶颈了,压力测试才算是基本完成。 阅读详情

本文的核心内容:ab压测与Siege压测工具的使用。


 

为了测试接口的性能、我们需要对接口进行压力测试,看看接口能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响接口调用方的前端展示效果。

 

Web压力测试指标

      1.TPS(transaction per second)

  每秒钟完成的web请求响应数量

  TPS=并发数/响应时间

  TPS是衡量系统性能的重要指标

  2.并发数

  并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。

  3.响应时间

  响应时间是指系统对请求作出响应的时间。

  4.吞吐量

  吞吐量指的是单位时间系统传输数据总量。

  可知吞吐量和TPS,并发数这两个因素是正比关系。

  但是当TPS,并发数达到极限值时,吞吐量不升反降,这是因为系统资源产生了大的消耗。

 

ab 测试

   ab是apachebench命令的缩写。

   ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、tomcat等其它Web服务器的压力。

 

1)ab安装

yum -y install httpd-tools

[root@vic html]# ab -V
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

2)ab 常用参数

常用请求参数:-n请求次数,-c并发数 -X 代理ip:代理端口
   -n requests     请求次数
   -c concurrency  并发数
   -t timelimit    持续测试时间 单位[s]
   -X proxy:port   代理ip:代理端口
ab -n 100 -c 10 https://www.baidu.com/

3)测试报告说明:

一般我们需要关心 Requests per second和 Transfer rate。 一般接口rps需要满足>=300,并且 99.9的响应请求保证在300ms内
Connection Times (ms)和请求响应时间分布(Percentage of the requests served within a certain time (ms)) 几部分进行分析

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.baidu.com (be patient).....done


Server Software:        BWS/1.1
Server Hostname:        www.baidu.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128

Document Path:          /
Document Length:        227 bytes

Concurrency Level:      10
Time taken for tests:   0.497 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      108197 bytes
HTML transferred:       22700 bytes
Requests per second:    201.39 [#/sec] (mean)
Time per request:       49.655 [ms] (mean)
Time per request:       4.966 [ms] (mean, across all concurrent requests)
Transfer rate:          212.79 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       26   33   3.7     33      49
Processing:     9   11   1.0     11      16
Waiting:        9   11   1.0     11      16
Total:         35   44   4.2     43      66

Percentage of the requests served within a certain time (ms)
  50%     43
  66%     45
  75%     46
  80%     46
  90%     48
  95%     50
  98%     56
  99%     66
 100%     66 (longest request)
 
这个表第一行表示有50%的请求都是在43ms内完成的, 以此类推,99%的请求是小于等于9ms的。

 

siege 测试

安装siege

为了支持https,需要先下载安装openssl
openssl地址:https://github.com/openssl/openssl

git clone https://github.com/openssl/openssl
cd openssl
./config --prefix=/usr/local/openssl
make
make install
openssl version

openssl安装完毕后,开始安装siege
siege地址:http://download.joedog.org/siege/siege-4.0.4.tar.gz

tar zxvf siege-4.0.4.tar.gz
cd siege-4.0.4
make clean
./configure --prefix=/usr/local/siege --with-ssl=/usr/local/openssl
make 
make install

注意:siege默认只支持255个并发数,可以自己自定义,修改/root/.siege/siege.conf下的limit数值。

1)使用说明

使用方式:  siege [options] URL
示例: siege -c 10 -t 1m $url  模拟10个用户并发请求$url,持续1分钟

2)多url测试

1. 登录测试服务器准备需要模拟的请求列表文件,文件内容每行一个url

  url格式 http://host[:port]/request_uri

2. 请求示例: siege -c 200 -t 10s  -f url.txt  并发100个用户持续10s, 随机从文件url.txt读取url
Options:
-g, --get                 Get请求
-c, --concurrent=NUM      并发请求数,默认 10
-r, --reps=NUM            循环测试次数
-t, --time=NUMm           测试时长: m[分],s[秒],H[小时] -t 1H 标识测试1小时
-d, --delay=NUM           两次读取url延迟请求间隔时间
-b, --benchmark           两次读取url间隔时间0,没有延迟
-i, --internet            随机读取url
-f, --file=FILE           FILE, select a specific URLS FILE.
-l, --log[=FILE]          LOG to FILE. If FILE is not specified, the
                           default is used: PREFIX/var/siege.log
-H, --header="text"       Add a header to request (can be many)
-A, --user-agent="text"   Sets User-Agent in request
-T, --content-type="text" Sets Content-Type in request
     --no-parser           NO PARSER, turn off the HTML page parser
     --no-follow           NO FOLLOW, do not follow HTTP redirects

3)测试报告说明

siege -c 100 -t  10s  http://www.baidu.com

Lifting the server siege...
Transactions:                  33554 hits  总请求次数
Availability:                 100.00 %     成功率
Elapsed time:                  59.67 secs   执行时间
Data transferred:              74.03 MB     总数据传输大小
Response time:                  0.18 secs    响应时间,显示网络连接的速度
Transaction rate:             562.33 trans/sec  平均每秒完成次处理请求数
Throughput:                     1.24 MB/sec   平均每秒传输数据
Concurrency:                   99.70          最大连接数
Successful transactions:       33554         成功请求次数
Failed transactions:               0          失败请求次数
Longest transaction:            1.17          最长请求时间
Shortest transaction:           0.00          最短请求时间

 

HWSD全球土壤数据下载处理 下载地址: http://www.fao.org/soils-portal/soil-survey/soil-maps-and-databases/harmonized-world-soil-database-v12/en/ 阅读详情

相关推荐

全球AI算力最强公司分析报告

全球AI算力最强公司分析报告显示,Google凭借自研TPU技术和庞大数据中心网络位居榜首,拥有约100万至150万块等效H100 GPU算力。微软、Meta和亚马逊紧随其后,分别拥有75万、55万和25万块等效H100 GPU。中国企业中,百度、阿里巴巴和腾讯表现突出,华为在国产AI芯片领域领先。技术指标上,NVIDIA H100相比A100性能显著提升,但功耗也大幅增加。未来AI算力需求将持续激增,预计2028年全球市场将超2000亿美元。新兴挑战者如xAI可能改变竞争格局。

MyySophia的博客 5718

利用ab并发测试吞吐量QPS

关键词: 1.QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 2TPS:吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需

zcvbnh的博客 5028

使用TensorFlow Lite Micro流程记录(带源码)

记录如何使用tensorflow lite micro,以及期间解决的问题

ZhaoDongyu_AK47的博客 6216

ab命令做压测测试

1. 背景:互联网发达的今天,大大小小的网站如雨后春笋,不断出现,但是想要做出一个网站很简单,但是想要做好一个网站,非常非常难,首先:网站做好之后的功能怎么样这都是次要的,主要的是你的网站能承受怎么样的访问量,一个在高压访问下,能承受很高峰值的访问并发才能称得上是一个好的网站,那么作为一个程序员,当你搭建好你的网站之后,你应该怎么测试你的网站并发访问量呢?     接下来要介绍的就是apache

小King哥的博客 2万+

MTK平台 MT6789 烧录 efuse 3.0 Configuration SOP

=====================生成cert1和cert2 key===============================================生成efuse key相关文件===========================================签名DA==========================================================正常编译。=====================Security3.0 的SOP 说明。

a785722173的博客 2332

ANSYS接触分析实战:从法兰连接案例看接触刚度与穿透容差的黄金搭配

本文以法兰连接为实战案例,深入解析了ANSYS接触分析中接触刚度(FKN)与穿透容差(FTOLN)的参数设置策略。通过系统性敏感性分析,揭示了这对关键参数的博弈关系与调优逻辑,旨在帮助工程师在保证计算收敛的同时,获得高精度的有限元分析结果,有效解决工程中的非线性接触难题。

moon9的博客 314

WEB压力测试工具 ab 及 Siege 介绍

<br />ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求 。ab做重复压力测试不错,但是每次只能测试一个链接,如何测试一组链接可能需要你自己修改ab的源代码,还好代码量不是很大。<br /> <br /><br /> Siege是一个压力测试和评测工具,设计用于WEB开发中评估应用在压力下的承受能力:可以根据配置,对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的响应时间,

Langeldep的专栏 3284

C#上位机+YOLOv8实战:摄像头/视频流实时目标检测(工业级优化+完整可运行源码)

纯C#实现,无Python依赖,适配工业工控机部署;工业级优化:解决帧率、内存、鲁棒性三大核心问题;代码完整可复用,支持摄像头/视频流/RTSP多源检测;避坑指南覆盖开发中90%的常见问题,降低落地成本。相较于传统方案,该方案兼顾实时性与易用性,成本仅为商用视觉库的1/10,可快速落地到工业质检、安防、物流等场景。后续可拓展方向包括:自定义数据集训练、GPU加速推理、工业通信(PLC/串口)对接等。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 735

AB压力测试

AB压测,工作中经常使用,故记录下来以备查

linmi2006的专栏 328

让 ABAP 开发者也能做出高质量 SAP Fiori:到底需要掌握多少前端知识?

文章摘要: 随着SAP技术演进,ABAP开发者的角色边界正在重构。传统SAP GUI时代的全栈开发模式逐渐转向RAP+Fiori Elements的新范式,其中关键技术变化包括: 开发模式转变:从前后端耦合转向RAP模型驱动开发,通过CDS注解实现UI意图表达 分工优化:Fiori Elements模板处理80%标准UI需求,Flexible Programming Model解决20%差异化需求 效率提升:注解驱动开发可在RAP建模阶段同步定义UI结构,大幅缩短交付周期 工具整合:SAP提供从建模到部署的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 350

多模态论文笔记——VQ-VAE和VQ-VAE-2

本文详细介绍VQ-VAE和VQ-VAE-2的原理和训练过程,为后面的dVAE在DALLE中的使用打下坚实的基础。

haopinglianlian的博客 3302

性能测试—接口压测指标分析

通常而言,Jmeter性能测试结果分析可从性能测试指标达成方面着手,然后再分析测试过程中出现的异常情况,逐一判断是否存在性能风险。 一、用户登录并发测试结果分析 1、提取测试指标 表1:用户登录并发性能指标 测试项 并发数 业务成功率 响应时间 CPU使用率 内存使用率 用户登录 100 100% <=5秒 <=80% <=80% 2、测试指标分析 1)并发数 线程组设置为100个线程,运行过程中未出现任何异常

sanmi8276的博客 1万+

基于STM32+RFID设计的宿舍检修管理系统

设计一个上位机,用来管理查看维修检修信息,当维修寝室的设备或者检修完成时,通过STM32上的RC522刷一下这个寝室的IC卡,识别这是哪个寝室,识别成功后在软件上弹出一个对话框,填写本次维修或者检修的事件,填写完毕点击提交即可。...

2556

web服务器压测工具siege、ab

web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux)、ab(for windows)。 一、siege 1、简介: Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求...

weixin_33737134的博客 157

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Linux压测工具(http_load,webbench,ab,siege)

Linux压测工具(http_load,webbench,ab,siege)一,http_load二,webbench三,ab四,攻城 一,http_load 程序非常小,解压后也不到100K http_load以并行重复的方式运行,并测试Web服务器的量子与负载。但是它大部分压力测试工具,它可以以一个单一的进程运行,一般不会把损坏搞死。还可以测试HTTPS类的网站请求。 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz

小啊宇的博客 944

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

三大压测工具对比:Siege/ab/Wrk实战指南

测试结果 20w+请求,qps在8612。测试结果尽量保证请求数量和wrk一致。

weixin_49254673的博客 1093

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

web压测工具之 siege 的使用

今天在看张开涛写的书时候,发现Siege这个压测的工具。之前只用过ab、jmeter,遂记录下它,以备不时之需。Siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。具体可参考:http://blog.youkuaiyun.com/qingye2008/article/...

weixin_33882452的博客 112

linux连接工具max,Linux压测工具(http_load、webbench、ab、siege)

一、http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz安装#tar zx...

weixin_36060412的博客 307

压测工具

压测工具 文章目录压测工具Siege -- Mac 环境下压测工具ab -- Apache benchmarkwrk Siege – Mac 环境下压测工具 使用方法: siege -c 并发数 -t 运行测试时间 URL 要注意的是 -t 后面参数的单位,s 表示秒,默认是分钟。 ab – Apache benchmark 使用方法: ab -c 并发数 -n 请求数 URL wrk ...

LYZ 543

压测工具介绍

接口压测工具 一 ab 1 下载源 http://httpd.apache.org/download.cgi httpd-2.4.46.tar.gz 下载到测试环境中:wget http://httpd.apache.org/download.cgi/httpd-2.4.46.tar.gz 2 解压 tar -zxvf 压缩包 3 在 /usr/sbin 下执行 ab 命令 -n:执行的请求次数 -c:并发数量 -s:响应的超时时间 -p:post请求的数据文件路径,需要设置-T参数 -T:Con

刹那间的回眸 290

并发压力性能测试工具介绍

一、AB压力测试工具(ApacheBench) 1. 安装 linux安装 yum -y install httpd-tools windos安装 // 下载Apache软件(ab软件不单独更新,而是独立集成到Apache) download https://de.apachehaus.com/downloads/httpd-2.4.39-o102s-x64-vc14.zip // 打开压缩包 ...

weixin_30256901的博客 284

性能测试入门及JMH、JMeter、Gatling、ab、Siege、Wrk、Locust、sysbench工具简介

性能测试有两种,负载测试和压力测试; 指标、分类、目标; 工具:JMH、JMeter、Gatling、ab、Siege、Wrk、Locust、sysbench;

lonelymanontheway的博客 2742

性能测试入门(三):性能测试工具

这篇文章介绍下性能测试工具: 简单模拟工具 有很多场景下,我们只是想做一个简单的压测,对于监测结果要求并不高,压测的场景也比较简单,不想安装复杂的工具,这种情况下,推荐使用简单的模拟工具进行就可以了。 ab ab即ApacheBench,是apache自带的一款功能强大的测试工具,安装了apache一般就自带了,即httpd(在bin目录下)。 ab主要是设计用来测试apache的...

frog4的专栏 1064

tornado 异步非阻塞 实验

参考tornado官方文档Tornado中异步非阻塞地使用MySQLTornado-MySQL 0.5.1使用tornado让你的请求异步非阻塞好文:Tornado 异步笔记:异步任务前言目前用到的都是同步请求。当遇到查数据库等耗时操作的时候,请求会一直被阻塞。实验我们使用sql语句cmds = "select sleep(1)"来模拟长时间的数据库查询。代码只贴出handler部分的代码。其中I

stevewong的专栏 1130

社区电商系统架构之技术架构验证篇1

本篇讲述如何验证技术架构可行性 压测工具使用 ab工具   ab -c 20000 -n 10000000 -p msg.txt http://localhost:8081/post?xx=075500000000\&amp;token=99029212\&amp;Version=1.0 &lt;span style="font-family: Arial, Helvetica, ...

wh0426的专栏 484
上一篇: Spring Boot-Redis发布/订阅
下一篇: curl命令
Sugar_maps
博客等级 码龄11年 49粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值