百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux使用ab工具命令对Web网站服务器进行压力测试

ahcoder 2025-05-27 12:07 7 浏览

ab是apachebench命令的缩写,它是apache自带的Web性能测试工具。ab工具非常实用,它可以去创建多个并发访问线程,模拟多个访问客户端同时对某一网站URL地址进行访问,这样我们就可以用来测试apache的负载压力,也可以对其它类型的服务器进行压力测试,比如nginx、tomcat、IIS等其它Web服务器的压力。网站性能压力测试可以说是服务器网站性能调优过程中必不可缺少的一环,只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。本文详细介绍一下ab工具的使用。

ab安装

ab安装我们可以通过yum方式直接安装apache的工具包httpd-tools。

yum -y install httpd-tools

安装完成后可使用“ab –V”命令查看当前的版本。

有关ab命令的使用,我们可以通过“ab -help”帮助命令进行查看。如下:

ab使用

ab的命令参数比较多,但是我们常用的主要参数就是-n和-c参数。

  • -n:表示一共模拟访问的次数。
  • -c:表示模拟并发的客户端数量。

模拟访问次数除以客户端就是每个客户端所发送的访问请求。

命令:ab -n Number1 -c Number2 url

实例:ab -n 100 -c10 https://www.baidu.com/

输出结果如下:

# ab -n 100 -c 10 https://www.baidu.com/  
This is ApacheBench, Version 2.3 <$Revision: 1430300 gt;
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    #Web服务器软件版本
Server Hostname:        www.baidu.com    #请求的URL主机名
Server Port:            443    #Web服务器软件的监听端口
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128    #SSL协议类型
Document Path:          /    #请求的URL中的根绝对路径
Document Length:        227 bytes    #HTTP响应数据的正文长度
Concurrency Level:      10    #请求的并发数,设置的-c参数
Time taken for tests:   1.276 seconds    #所有这些请求被处理完成所花费的总时间
Complete requests:      100    #总请求数量,设置的-n参数
Failed requests:        0    #失败的请求数量
Write errors:           0    
Total transferred:      111098 bytes    #所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。
HTML transferred:       22700 bytes    #所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。
Requests per second:    78.38 [#/sec] (mean)    #吞吐率,也叫QPS,计算公式:Complete requests/Time taken for tests
Time per request:       127.583 [ms] (mean)    #用户平均请求等待时间,从用户角度看,完成一个请求所需要的时间。计算公式:Time token for tests/(Complete requests/Concurrency Level)
Time per request:       12.758 [ms] (mean, across all concurrent requests)    #服务器完成一个请求的时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数
Transfer rate:          85.04 [Kbytes/sec] received    #网络传输速度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       42   85  17.3     88     129
Processing:    15   27  10.8     23      66
Waiting:       15   27  10.5     23      66
Total:         67  112  19.7    111     167
 #这几行组成的表格主要是针对响应时间也就是第一个Time per request进行细分和统计。一个请求的响应时间可以分成网络链接(Connect),系统处理(Processing)和等待(Waiting)三个部分。
表中min表示最小值; mean表示平均值;[+/-sd]表示标准差(Standard Deviation) 表示数据的离散程度,数值越大表示数据越分散,系统响应时间越不稳定。 median表示中位数; max表示最大值。
需要注意的是表中的Total并不等于前三行数据相加,因为前三行的数据并不是在同一个请求中采集到的,可能某个请求的网络延迟最短,但是系统处理时间又是最长的呢。所以Total是从整个请求所需要的时间的角度来统计的。这里可以看到最慢的一个请求花费了167ms
Percentage of the requests served within a certain time (ms)
  50%    111    
  66%    121    
  75%    124    
  80%    128    
  90%    136   
  95%    152    
  98%    161    
  99%    167   
 100%    167 (longest request)
#这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,50%的请求处理时间都不超过111ms,60%的请求处理时间都不超过121ms...这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间

总结

ab工具使用方便,上手较快,可以提供查看服务器性能的基本指标,但是不能够以图形化的形式展现,也不能监控,所以可以做临时的、简单的服务器性能测试。同类型的压力测试工具还有:webbench、siege等。需要注意的是ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。我们测试使用时需要注意,否则一次上太多的负载,可能造成目标服务器资源耗完,严重时甚至导致死机。

相关推荐

Debian 12.11 发布:安全修复和稳定性更新齐上阵

开发者们请注意!备受期待的Debian12.11版本终于发布了!这次更新不仅带来了安全性修复,还针对稳定性进行了多项优化。无论是服务器环境还是桌面应用,Debian12.11都能为你提供更可...

基于 Linux 构建企业级 VPN 安全通信通道(StrongSwan 实战指南)

在企业异地办公、数据中心互联、分支机构安全接入等场景中,建立一条安全稳定的通信通道是关键需求。IPsec是一种在网络层加密传输数据的协议,而StrongSwan是一款稳定、功能强大的IPsec...

新手必看!从零开始:企业级Linux服务器安全加固全流程

据统计,80%的企业服务器入侵事件源于配置疏忽或弱密码,而非复杂攻击。对于新手而言,搭建一台看似安全的Linux服务器却留下致命漏洞,可能只需几分钟——但修复这些漏洞却需要数小时甚至数天。本文将手把手...

Ubuntu 25.10搭载Linux 6.17内核,启用Chrony护航时间安全

IT之家5月23日消息,科技媒体phoronix昨日(5月22日)发布博文,报道称Canonical确认Ubuntu25.10将搭载Linux6.17内核,并默认采用...

Linux一些涉网络安全方面参数设定

参数意义调整方法存储位置推荐值net.ipv4.ip_forward控制IPv4数据包转发(路由器功能)sysctl-wnet.ipv4.ip_forward=1或修改配置文件/proc/sys...

Linux安全加固终极指南:5个必做设置,90%攻击者束手无策!

据统计,超过70%的安全漏洞源于配置不当或弱密码,而并非复杂的0day攻击。这意味着,只要做好基础安全加固,你的Linux服务器就能抵御绝大多数自动化攻击和初级渗透。本文将揭秘5个必做设置,让你的服务...

别让“默认配置”坑惨你!Linux安全加固的3个反直觉操作

你的Linux系统真的安全吗?当管理员们盲目遵循“默认配置”时,黑客早已盯上这些“隐藏的默认陷阱”。90%的安全事故源于未被重视的“出厂设置”!本文揭露3个反直觉的加固操作,颠覆你对Linux安全的认...

为什么你的Linux系统仍然不安全?90%的人忽略的关键加固步骤

你的Linux服务器是否曾遭遇过莫名的入侵?是否在安全审计时发现低级漏洞?明明安装了防火墙、设置了密码,为什么系统依然存在风险?答案可能藏在那些被90%管理员忽略的“隐性漏洞”中!本文将揭露Linux...

Linux系统突现未知端口连接?高级排查命令全解析

导语“服务器突然出现未知外连端口,流量监控显示异常数据传输!”——这是运维工程师最不愿面对的告警。据统计,2023年全球企业因异常端口通信导致的数据泄露事件中,68%的攻击者利用了未被监控的端口通道。...

紧急!Linux系统异常进程飙升?3招定位挖矿木马

导语CPU占用率突然飙至100%,系统响应缓慢甚至宕机——这是Linux服务器遭遇挖矿木马的典型症状。据统计,2023年全球企业因加密货币挖矿攻击导致的经济损失超45亿美元,其中70%的攻击发生在未及...

FRP客户端配置教程:内网服务轻松上云!

FRP客户端配置教程:内网服务轻松上云!FRP客户端是将内网服务暴露到公网的关键组件。接下来,我们将一步步完成FRP客户端的配置,让您的内网服务随时随地可访问!一、FRP客户端安装与配置1.下载FR...

小白客带你走进黑客世界15kali linux下的信息收集技术

在一开始的文章中小白提到,黑客的攻击模型为:踩点–>定位–>入侵–>留后门–>抹去痕迹其中重要的就是踩点阶段,也就是信息收集。一个好的开始就是成功的一半,上一篇文章中小白介绍了...

构建基于 Linux 的高性能 DNS 服务器

在现代网络架构中,DNS(域名解析)是访问互联网的关键环节。搭建一个高性能、低延迟、可缓存加速的私有DNS服务器,不仅可以提升访问速度,还能增强网络隐私和安全性。本文将基于Linux系统,详细...

linux服务器性能调优经典技巧汇总

Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...