很多的web应用在搭建服务器完成后,为了让搭建的服务能够满足用户的访问需求,通常需要测试自己应用的并发连接能力。需要使用一些压测工具,本文介绍一些免费的开源的压测工具,可以用于简单的压力测试(实验均在Linux系统下)。

1.ab工具

ab的全称是Apache Bench,是Apache自带的网络压力测试工具,ab命令对发出负载的计算机要求很低,不会占用很高CPU和内存,但也能给目标服务器产生巨大的负载,能实现基础的压力测试。在进行压力测试时,最好与服务器使用交换机直连,以获取最大的网络吞吐量。(云服务器可以选择内网相连)

ab的安装很简单,安装Apache会自动安装,如果要单独安装ab,可以使用yum安装:

yum install httpd-tools –y

基本概念:

• 吞吐率(Requests per second)

概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

计算公式:总请求数 / 处理完成这些请求数所花费的时间,即

Request per second = Complete requests / Time taken for tests

• 并发连接数(The number of concurrent connections)

概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

• 并发用户数(The number of concurrent users,Concurrency Level)

概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

• 用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即

Time per request = Time taken for tests /( Complete requests / Concurrency Level)

• 服务器平均请求等待时间(Time per request: across all concurrent requests)

计算公式:处理完成所有请求数所花费的时间 / 总请求数,即

Time taken for / testsComplete requests

可以看到,它是吞吐率的倒数。

同时,它也=用户平均请求等待时间/并发用户数,即Time per request / Concurrency Level

ab命令选项 可以使用 ab -–help查看全部的命令参数

ab命令最基本的参数是-n和-c:

-n 执行的请求数量

-c 并发请求个数

其他参数:

-t 测试所进行的最大秒数

-p 包含了需要POST的数据的文件

-T POST数据所使用的Content-type头信息

-k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认时,不启用KeepAlive功能

ab –n 100 –c 10 http://39.1**.15.233/home/ 测试的自己的网站(100请求,10并发)

网络上消耗的时间的分解:

Connection Times (ms)

min mean[+/-sd] median max

Connect: 2 43 197.3 2 1008

Processing: 11 1174 1506.4 858 13033

Waiting: 10 551 1381.4 220 13026

Total: 12 1218 1489.6 1017 13039

每个请求处理时间的分布情况:

50%的处理时间在1017ms内,66%的处理时间在1441ms内...,重要的是看90%的处理时间。

Percentage of the requests served within a certain time (ms)

50% 1017

66% 1441

75% 1655

80% 1862

90% 2476

95% 3167

98% 3562

99% 13039

100% 13039 (longest request)

在实际测试的时候可以酌情增加连接数和用户数,以得到最接近准确的并发数值。

Webbench

Webbench是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。

webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。

Webbench最多可以模拟3万个并发连接去测试网站的负载能力

下载安装webbench

wget http://www.ha97.com/code/webbench-1.5.tar.gz

tar -zvxf webbench-1.5.tar.gz

编译安装

查看命令参数提示

测试

webbench -c 50 -t 10 http://39.1..233/home/

模拟五十个用户访问自己的网站10秒,请求的URL 后端如果报错,就加一个“/”。

3.http_load

http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能。

同样需要下载安装

wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

tar -zvxf http_load-12mar2006.tar.gz

cd http_load-12mar2006

make && make install

查看帮助

使用

创建urls文件,文件里面写要测试的URL

vim urls

使用示例

./http_load -rate 5 -seconds 10 urls

-parallel 简写-p :含义是并发的用户进程数。

-fetches 简写-f :含义是总计的访问次数

-rate 简写-p :含义是每秒的访问频率

-seconds简写-s :含义是总计的访问时间

执行结果:

说明执行了一个持续时间10秒的测试,每秒的频率为5。

49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds

5916 mean bytes/connection

4.89274 fetches/sec, 28945.5 bytes/sec

msecs/connect: 28.8932 mean, 44.243 max, 24.488 min

msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

HTTP response codes:

code 200 -- 49

结果分析:

1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds

说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒

2.5916 mean bytes/connection

说明每一连接平均传输的数据量289884/49=5916

3.4.89274 fetches/sec, 28945.5 bytes/sec

说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec

4.msecs/connect: 28.8932 mean, 44.243 max, 24.488 min

说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs

5.msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

6、HTTP response codes: code 200 – 49

说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。

特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect

他们分别对应的常用性能指标参数

Qpt-每秒响应用户数和response time,每连接响应用户时间。

测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

以上介绍了三种开源免费的压测工具,使用都比较简单,类似的工具还有很多,如siege等,不再一一累述。

如果需要专业的模拟多用户的并发访问的压力测试,可以使用付费产品,如阿里云PTS压力测试。

web版本 开源压测工具_免费压测工具相关推荐

  1. dicom标注工具_免费AI标注工具-医疗影像标注工具

    医疗相关的AI产品对于相关公司和医院目前大多是冰火两重天的场景,一面是近些年积极研发.造势的AI相关公司的高涨热情,一面是医院使用率低.效果不佳的尴尬境遇,但对于医疗影像的AI相关产品的研究绝对不会止 ...

  2. web版本 开源压测工具_14款好用开源的Web应用压力负载,性能测试工具推荐

    JMeter JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现. Grinder Grinder是一个负载测试框架,通过Jython来编写测试脚本,基 ...

  3. linux多线程_免费Linux下载工具,你还不知道?

    今天小编要跟大家分享的文章是关于Linux运维人员应该知道的免费Linux下载工具.Windows用户在想要使用下载管理器时可以享受很多选择.如Download Accelerator Plus和Re ...

  4. 免费的sql工具_免费SQL工具

    免费的sql工具 Adminer ApexSQL CI/CD toolkit ApexSQL Compare ApexSQL Complete ApexSQL Decrypt ApexSQL Plan ...

  5. Enscape 出 Mac 版本了,适用于SketchUp 2021免费公测版,附下载地址

    Enscape 宣布推出适用于 Mac 的 Enscape 免费公测版本,这是其流行的实时渲染和虚拟现实插件的新原生 macOS 版本,适用于建筑和 CAD 软件.新版本于上周的Envision 20 ...

  6. java写渗透工具_常用渗透测试工具使用tips

    (7)sqlmap(python脚本学习下) 经典sql注入工具 (这种针对参数的工具,不知道是不是扫描方式有问题,还是怎么着,怎么才能抓几个包,或者把常用点的包抓出来) 抓几个sqlmap的包 sq ...

  7. 工作效率 工具_我使用的工具加快了我的工作流程,使我的工作效率更高

    工作效率 工具 by Egwuenu Gift 通过Egwuenu礼物 我使用的工具加快了我的工作流程,使我的工作效率更高 (The tools I use speed up my workflow ...

  8. seo伪原创工具_文章伪原创工具哪个好用(伪原创工具有哪些)

    从事网站seo优化的工作基本上每天都会和文章打交道,因为网站的排名与网站的收录关系是非常大的,网站的收录又和文章息息相关,搜索引擎的胃口是比较喜欢新的内容.原创的内容,而对于一些文案功底比较没那么好的 ...

  9. 历史 微信开发者工具_不用微信开发者工具也能调试微信页面

    一般调试微信页面的时候,我们都会按照微信开发的官网教程,让你去安装微信开发者工具,然后在微信开发者工具上调试, 这样有时候会不会感觉很麻烦? 而且这个工具还经常卡死. 1515737321133.jp ...

最新文章

  1. python爬虫招聘-Python爬虫抓取智联招聘(基础版)
  2. 读写属性/if判断那点事/数组
  3. 解决在ESXi的虚拟化环境中的FreeNAS里Jails插件无法被访问到的问题
  4. sharepoint2013保存当前输入的列表
  5. set 赋值(转载)
  6. 如何修改微软share point site 的页面风格
  7. 冷知识:摄影艺术与图像处理算法之间的纠葛关系你知道吗
  8. 斐波那契数列(二)--矩阵优化算法
  9. 中国输卵管癌治疗行业市场供需与战略研究报告
  10. 大数据、物联网、区块链:融合趋势三重奏的好处
  11. STL 算法接口及用法说明
  12. 2.4g 无线键鼠对码软件_RK526无线键鼠套装开箱体验
  13. 66岁比尔盖茨突然宣布离婚!27年前与下属恋爱修成正果,现在“无法共同成长”,分割8000亿财产...
  14. Python制作经典的吃豆豆小游戏
  15. 手机查看企业qq邮件服务器,QQ企业邮箱怎么用?手机QQ邮箱收发邮件的方法
  16. 虚拟机centos7的网络配置
  17. 全球与中国抗口腔粘膜炎药物市场深度研究分析报告
  18. JS C22作业:方块拖拽效果
  19. SpringCloud五大神兽之Eureka服务注册(三)——Eureka的自我保护
  20. Linux 安装DockerMysql

热门文章

  1. 基于深度学习方法的头盔佩戴检测研究与系统实现
  2. 传统汽车工程技术人员面对新架构的难点
  3. SAP HANA学习
  4. 进阶篇(1):字节跳动Android面试笔记-适合中高级Android程序员!(开发3-5年)
  5. 【刷题日记】笔试经典编程题目(三)
  6. Unity快速入门之二 GUI Transform 详解
  7. 牛客面经 |这可能不只是一篇面经
  8. 文本挖掘-实战记录(一)新闻文本nmi降维+分类训练
  9. SAP成都C4C小李探花:浅谈Fiori Design Guidelines
  10. JavaScript之迭代器and生成器