前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Web服务器性能压力测试工具

Web服务器性能压力测试工具

原创
作者头像
Action
修改于 2021-08-24 07:50:20
修改于 2021-08-24 07:50:20
6.8K0
举报
文章被收录于专栏:WEB开发~WEB开发~

http_load

程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。

下载与安装

代码语言:txt
AI代码解释
复制
wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz

tar -zxvf http_load-12mar2006.tar.gz

cd http_load-12mar2006

make && make install

用法

代码语言:txt
AI代码解释
复制
http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件

参数其实可以自由组合,参数之间的选择并没有什么限制。

比如你写成http_load -parallel 5 -seconds 300 urllist.txt也是可以的。

我们把参数给大家简单说明一下。

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

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

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

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

准备URL文件:url.txt,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好。

URL文件格式

url.txt

代码语言:txt
AI代码解释
复制
http:www.baidu.com

示例

代码语言:txt
AI代码解释
复制
http_load -p 200 -s 60  url.txt

结果分析

19222 fetches, 200 max parallel, 1.42575e+09 bytes, in 60.0004 seconds

说明在上面的测试中运行了19222个请求,最大的并发进程数是200,总计传输的数据是1.42575e+09 bytes,运行的时间是 60.0004秒

74172.6 mean bytes/connection

说明每一连接平均传输的数据量74172.6

320.365 fetches/sec, 2.37623e+07 bytes/sec

说明每秒的响应请求为320.365 ,每秒传递的数据为2.37623e+07 bytes/sec

msecs/connect: 0.352603 mean, 56.427 max, 0.045 min

说明每连接的平均响应时间是352.603 msecs,最大的响应时间 56.427 msecs,最小的响应时间0.045 msecs

secs/first-response: 613.465 mean, 27126 max, 37.81 min 1892 bad byte counts HTTP response codes:

code 200 -- 19217

code 502 -- 5

说明打开响应页面的类型

webbench

webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。

下载和安装

代码语言:txt
AI代码解释
复制
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz

cd webbench-1.5

make && make install

使用

代码语言:txt
AI代码解释
复制
webbench -c 1000 -t 130 http://192.168.3.81/

结果

ab

ab是apache自带的一款功能强大的测试工具。安装了apache一般就自带了。用法可以查看它的说明

安装

代码语言:txt
AI代码解释
复制
yum -y install httpd-tools

查看是否安装成功

代码语言:txt
AI代码解释
复制
ab  -V

参数说明

代码语言:txt
AI代码解释
复制
-n  在测试会话中所执行的请求个数。默认时,仅执行一个请求。

-c  一次产生的请求个数。默认是一次一个。

-t  测试所进行的最大秒数。其内部隐含值是

-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

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

-P 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。

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

-v 设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。

-V 显示版本号并退出。

-w 以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

-i 执行HEAD请求,而不是GET。

-x 设置<table>属性的字符串。

-X 对请求使用代理服务器。

-y 设置<tr>属性的字符串。

-z 设置<td>属性的字符串。

-C 对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。

-H 对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit")。

-A 对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。

-h 显示使用方法。

-d 不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持)。

-e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。

-g 把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。-i执行HEAD请求,而不是GET。

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

-q 如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。

使用

ab的命令参数比较多,我们经常使用的是-c和-n参数。

代码语言:txt
AI代码解释
复制
ab -c 10 -n 100 http://192.168.3.81/index.php

-c 10 表示并发用户数为10

-n 100 表示请求总数为100

http://192.168.3.81/ 表示请求的目标URL

这行表示同时处理100个请求并运行10次index.php文件。

结果如下:

加粗
加粗

吞吐率(Requests per second)

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【日志服务CLS】初识腾讯 CLS 高速检索与 Nginx 预报警服务~
和尚虽然是移动端开发,但对于 Nginx 负载均衡稍稍有些了解,而曾经的毕业论文就是以 Nginx 为研究方向进行的,今天根据 腾讯云+社区 活动,简单尝试一下 Nginx 日志服务;
阿策小和尚
2021/05/18
1.3K1
【技术创作101训练营】Java 并发编程基础
在线观看样式会丢失,上传了 pdf 版本,zip 中有 ppt 及 keynote 原件。
KIWI
2021/01/20
4090
【技术创作101训练营】Java 并发编程基础
Ichunqiu云境 - Delegation Writeup
0x1 Info图片0x2 ReconTarget external IP39.98.34.149Nmap results图片关注80端口的http服务,目录爆破(省略)找到 /admin 图片使用弱口令登录进入后台,去到模板页面,编辑header.html,添加php一句话`用户名: admin, 密码:123456![f71dd2cf6322f6235561582fe3698a6.png](https://ask8088-private-1251520898.cn-south.myqcloud.com/
Gcow安全团队
2022/12/10
4550
journalctl命令-系统调试中一个常用的命令
centos7开始j系统使用2个日志服务用于系统日志,一个服务是systemd-journald,这个服务把日志存放到内存中。另一个服务是rsyslogd,它可以从systemd-journald获取日志并把日志存放在磁盘上。journalctl命令主要开始承担了查看日志还有一些日志的配置功能,经常需要用到这个命名去查看日志和设置日志的一些参数。借用他山之石(系统centos7,腾讯云cvm,故日志中会有qcloud ntp还有云监控agent的一些log)总结一下:
对你无可奈何
2021/02/05
3.6K0
ICCV 2021 | BN-NAS: 只训练BN层来自动搜索模型
很明显这两个步骤都非常耗时,所以这篇论文打起了 batch-normalization (BN) 的主义,即
marsggbo
2021/09/14
3830
ICCV 2021 | BN-NAS: 只训练BN层来自动搜索模型
灰度发布与ABtest
蓝绿发布 [zouhf7hpk5.png?q-sign-algorithm=sha1&q-ak=AKID2uZ1FGBdx1pNgjE3KK4YliPpzyjLZvug&q-sign-time=165
降龙_伏虎
2022/04/21
7150
灰度发布与ABtest
【技术创作101训练营】- 前后端分离模式下如何保证开发人员不打架?
上传ppt很多颜色被改变了,如果评委老师想看原版的话,可以看pdf,麻烦了,谢谢。
手撕代码八百里
2021/01/20
1K3
【技术创作101训练营】- 前后端分离模式下如何保证开发人员不打架?
MySQL 索引(下)
从结果中看出,索引失效了,这是因为我们需要把索引字段的值都取出来,然后依次进行表达式的计算来进行条件判断,因此采用的就是全表扫描的方式,运行时间也会慢好多。
mr.songw
2021/01/15
6910
MySQL 索引(下)
竞技世界面试官:说一下公平锁和非公平锁的区别?
上次我们提到了乐观锁和悲观锁,那我们知道锁的类型还有很多种,我们今天简单聊一下,公平锁和非公平锁两口子,以及他们在我们代码中的实践。
Java程序猿
2021/07/18
3780
都2021年了还不会在CentOS7上使用pyenv搭建Django环境吗?
pyenv是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源.
查理不是猹
2021/12/17
5230
开源工业物联网网关
工业物联网网关(IIoTGateway)是一种硬件设备或软件程序,作为**本地设备**(如PLC、扫码枪、机器人、数控机床、非标上位机等)与**云端系统**(如物联网平台、SCADA系统、MES系统等)之间的**桥梁**,在设备和云端之间流动的所有数据都通过IoT网关,如下图所示:
iioter
2022/04/19
1.8K0
开源工业物联网网关
【有奖征文】如何用腾讯云服务器在20分钟内完成moddle在线学习平台的搭建
数据库相关设置,如果有选用腾讯云数据库,Database host这里可以写云数据库IP地址,注意此处的用户名为root,密码根据 服务器管理台提示获取, 填下相关信息后继续next:
用户9563052
2022/03/26
2.1K0
Windows下安装MongoDB
下一步安装 "install mongoDB compass" 不勾选(当然你也可以选择安装它,可能需要更久的安装时间),MongoDB Compass 是一个图形界面管理工具,我们可以在后面自己到官网下载安装,下载地址:https://www.mongodb.com/download-center/compass。
Action
2021/09/14
9930
八大绝妙的React Hook
React.js是目前最受前端开发人员欢迎的JavaScript库。它由Facebook开发,但可作为开放源码项目使用,全世界的开发者和公司都在使用它。
人工智能小咖
2020/04/10
1.4K0
八大绝妙的React Hook
Windows下安装Mycat
已管理员身份启动cmd,进入D:\mycat\bin目录,执行mycat install
Action
2021/09/18
2.1K0
windows单机搭建k8s环境——部署ingress
ingress是k8s对外暴露服务的一种方式。当我们使用购买的公有云服务时,平台已经提供部署好的ingress,用户只需要添加挂载策略即可。
DifficultWork
2021/04/06
1.6K0
关于Safari 访问springboot server项目异常问题
后端大哥不作为,埋点数据啥的搞得杂七乱八,自己用springboot 写了一个接受post日志的服务,数据入腾讯云ckafka,消费到elasticsearchhttps://console.cloud.tencent.com/es。(也无聊的用自带的云函数做了个备份将数据copy到了cos对象存储)并在springboot上面加了允许跨域等设置,代码是网上copy来的:
对你无可奈何
2021/02/04
7190
技术分享 | Bug定位方法
通常情况下 Bug 分为四个类型,分别是功能、性能、安全和专项质量。功能级别关注于业务流程是否正确。性能级别关注于业务流程是否顺畅。安全方面判断是否存在漏洞,是否符合安全标准与规范。专项质量通常关注于用户体验 UX、兼容性、稳定性和可靠性。
霍格沃兹测试开发
2022/03/29
3110
Redis 安装部署
测试下部署在本地 Docker 容器中的 Redis 服务器同时处理 10 万个并发请求的性能:
Action
2021/04/15
7480
Redis 安装部署
PHPStudy + VSCode 进行 PHP 断点调试
文件->首选项->设置->扩展->php->validate:executable path
Action
2021/08/12
2.2K0
PHPStudy + VSCode 进行 PHP 断点调试
相关推荐
【日志服务CLS】初识腾讯 CLS 高速检索与 Nginx 预报警服务~
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文