ab命令压力测试网站性能

news/2024/5/18 3:34:38/文章来源:https://blog.csdn.net/qq_38738033/article/details/79894274

        网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。

        性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。

        ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

下面我们开始介绍有关ab命令的使用:

    1、ab的原理

    2、ab的安装

    3、ab参数说明

    4、ab性能指标

    5、ab实际使用

 

一、ab的原理

ab是apachebench命令的缩写。

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

ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

二、ab的安装

ab的安装非常简单,如果是源码安装apache的话,那就更简单了。apache安装完毕后ab命令存放在apache安装目录的bin目录下。如下:

/usr/local/apache2/bin

如果apache 是通过yum的RPM包方式安装的话,ab命令默认存放在/usr/bin目录下。如下:

which ab

注意:如果不想安装apache但是又想使用ab命令的话,我们可以直接安装apache的工具包httpd-tools。如下:

yum -y install httpd-tools

 

 

查看ab是否安装成功

 

  • 命令: abab -help
  • 显示命令参数如下

 

三、ab参数说明

 

此外,我们再根据上面的用法介绍界面来详细了解每个参数选项的作用。-n  即requests,用于指定压力测试总共的执行次数。
-c  即concurrency,用于指定的并发数。
-t  即timelimit,等待响应的最大时间(单位:秒)。
-b  即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p  即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u  即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T  即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v  即verbosity,指定打印帮助信息的冗余级别。
-w  以HTML表格形式打印结果。
-i  使用HEAD请求代替GET请求。
-x  插入字符串作为table标签的属性。
-y  插入字符串作为tr标签的属性。
-z  插入字符串作为td标签的属性。
-C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X  指定使用的和端口号,例如:"126.10.10.3:88"。
-V  打印版本号并退出。
-k  使用HTTP的KeepAlive特性。
-d  不显示百分比。
-S  不显示预估和警告信息。
-g  输出结果信息到gnuplot格式的文件中。
-e  输出结果信息到CSV格式的文件中。
-r  指定接收到错误信息时不退出程序。
-h  显示用法信息,其实就是ab -help。

四、ab性能指标

在进行性能测试过程中有几个指标比较重要:

1、吞吐率(Requests per second)

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

记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

a、吞吐率和并发用户数相关

b、不同的并发用户数下,吞吐率一般是不同的

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

Request per second=Complete requests/Time taken for tests

必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。

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

并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

3、并发用户数(Concurrency Level)

要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。

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

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

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

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

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

Time taken for/testsComplete requests

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

同时,它也等于用户平均请求等待时间/并发用户数,即

Time per request/Concurrency Level

五、ab的使用

 

  • 模拟并发请求100次,总共请求10000次
  • 命令模板:
    ab -c 100 -n 10000 待测试网站(建议完整路径)
  • 简单解释:并发访问量过大 服务器拒绝访问,理论上通过系统配置,可以有更好的承受能力
  • Server Software:        nginx/1.10.2 (服务器软件名称及版本信息)
    Server Hostname:        192.168.1.106(服务器主机名)
    Server Port:            80 (服务器端口)
    Document Path:          /index1.html. (供测试的URL路径)
    Document Length:        3721 bytes (供测试的URL返回的文档大小)
    Concurrency Level:      1000 (并发数)
    Time taken for tests:   2.327 seconds (压力测试消耗的总时间)
    Complete requests:      5000 (的总次数)
    Failed requests:        688 (失败的请求数)
    Write errors:           0 (网络连接写入错误数)
    Total transferred:      17402975 bytes (传输的总数据量)
    HTML transferred:       16275725 bytes (HTML文档的总数据量)
    Requests per second:    2148.98 [#/sec] (mean) (平均每秒的请求数) 这个是非常重要的参数数值,服务器的吞吐量 
    Time per request:       465.338 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间)
    Time  request:       0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
    Transfer rate:          7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率,单位:KB/s)
    ...
    Percentage of the requests served within a certain time (ms)50%    347  ## 50%的请求在347ms内返回 66%    401  ## 60%的请求在401ms内返回 75%    43180%    51690%    60095%    84698%   157199%   1593100%   1619 (longest request)
    • 测试机与被测试机要分开
    • 不要对线上的服务器做压力测试
    • 观察测试工具ab所在机器,以及被测试的前端机的CPU、内存、网络等都不超过最高限度的75%

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_787282.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter测试网站,api,mysql性能

先安装jdk Windows版JMeter下载安装 https://www.apache.org/dist/jmeter/binaries 下载解压进入bin文件夹,双击打开jmeter.bat即可 Linux环境安装JMeter 1.下载 http://jmeter.apache.org/download_jmeter.cgi 2.apache-jmeter.zip上传到Linux服务器的指定目录…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

美化网站的实用 CSS3 技巧

美化网站的实用 CSS3 技巧 黑白图像 .desaturate {filter: grayscale(100%);-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%); }页面顶部阴影 ::before {content: "";position: fixed;top…

网站301跳转

为什么80%的码农都做不了架构师?>>> 很多地方发链接做限制了,所以专门做了个缩网址的网站 http://5x12.co.cc 速度还行 因为默认是列出根目录的所以访问根目录这个可不行啊,本站不是vps所以只能在.htaccess上做文章了 想让客户访…

LogParser的IIS网站分析技巧

LogParser介绍 LogParser是微软的一个免费的日志分析工具,它支持许多格式的文件类型。主要有如下几类: IIS 文件格式 IISW3C: IIS产生的W3C扩展格式 IIS: IIS专有格式. BIN: IIS的BIN格式. IISODBC: IIS可以把日志存储在数据库中。LogParser可以…

迪普网站防护系统产品线

迪普网站防护系统产品线 转载于:https://blog.51cto.com/itcn001/1064591

新闻资讯类网站的PC端前台模板分享

PC端新闻资讯模板背景效果图技术方案选型过程方案敲定结语背景 我同学公司需要开发一个pc端的新闻咨询网址,后端和app端都有了,具体一点就是已经有了后台监控和发布系统,并且实现了手机app端的新闻客户端页面,只差pc端资讯网站了…

【网易公开课】构建动态网站

第1集 第2集 第3集 正在播放...第4集 第5集 第6集 第7集 第8集 第9集 第10集 转载于:https://blog.51cto.com/hujieqi126/1088614

※如何给自己的网站添上分享到新浪微博的等分享功能?

分享到新浪微博代码示例: 只要选择以下代码嵌入自己的网页,即可将网站的信息分享到新浪微博。 使用说明: 复制并粘贴下面的JS代码,放到您的网页,可以在网页的任意位置放置。如果您的网站使用的模板,您也可以复制代…

iframe 无权限 不通网站_大型企业网站建设

大型企业网站建设,那么,关于大型企业网站建设还有哪些知识点呢? 网站易用性的定义。网站“易用性”是指在特定情境下,特定使用者使用网页的功能、效率以及他们对网站满意程度的衡量。一旦网站缺乏“易用性”设计或者是“易用性”设…

如何知道一个网站的后台地址_如何设计一个营销型网站

营销型网站并不是通用的设计,需要具体根据你所操作的行业具体分析来设计;行业网站功能需求的满足,网站需要有价值才会有营销咨询;营销在设计操作层面,就是真实案例介绍、服务行业、解决方案、更完善的网站用户体验、用…

JFinal_Blog通过360网站检测平台测试100分!

2019独角兽企业重金招聘Python工程师标准>>> JFinal_Blog通过360网站检测平台测试100分! 截图: 地址:http://webscan.360.cn/task/view/id/13893198965829 (猛戳查看) 转载于:https://my.oschina.net/craz…

python bottle支持https_用python web框架 bottle 开发网站(四)

在第三节我们熟悉并编写了用户登录逻辑,这一节我们要实现用户状态保持,就是判断用户当前的登录状态,我们用加密cookie的方式来实现,在bottle中用response.set_cookie()和requests.get_cookie()来写入和读取用户cookie,…

新网服务器网站后台怎么登陆,新网域名管理后台

在新网域名管理后台的系统中,您只需要拥有域名管理密码,即可以管理域名。域名证书的作用是证明域名所有权。如果您需要对网站进行备案时,需要提供给您的主机空间服务商。所有通过新网注册并交纳相应注册费用的用户均可通过新网域名自助管理平…

基于栅格的网站设计

如今,Grid-based(基于栅格的)网页设计已相当普遍,这意味着网页布局混乱的日子就要终结。尽管还无法用肉眼分辨,但我们的确是步入了有 序和结构化的时代。栅格布局整体趋于匀称,通常会使网页更加整洁美观。同…

html怎么做购物车页面,网站购物车界面(div+css实现)

叮咚网购物车.main{width:100%;height:590px;border:1px solid #000;text-decoration: none;}.top{width:100%;height:52px;border:1px solid #000;}.downMenu{width:100%;height:30px;font:normal normal 20px "宋体";color:#fff;background-color: #000000;}#searc…

iis发布网站问题-由于权限不足而无法读取配置文件,无法访问请求的页面

错误一: HTTP Error 500.19 - Internal Server Error 配置错误: 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的 (overrideModeDefault"Deny"),或者是通过包含 overrideMode"Deny…

python爬虫-爬取网站图片。

突然在网上看见自己喜欢的图片,想下载,只能一张图片一张图片的点击,想一想,你要下载的图片有10000张,那会是一个怎么样的画面,答案很简单,你会哭的,假如一张图片从搜索出来&#xff…

教你如何快速将网站开发为桌面应用

“ 教你如何快速开发桌面应用” 首先,我们来想像一下喜欢某个网站,或者我们自己有一个网站,在某个时间我们不知道怎么的突然想把某个网站做成我们自己桌面应用(不要问为什么,之前没有,现在得有)…