网站压测工具Apache-ab,webbench,Apache-Jemeter

article/2025/9/12 15:11:33

网站压测工具Apache-ab,webbench,Apache-Jemeter

  • 1、搭建测试网站
  • 2、Apache自带工具ab
  • 3、webbench
  • 4、Windows下安装Apache-Jmeter

1、搭建测试网站

编译LAMP网站部署:LAMP
web1配置:
yum方式搭建网站

初始化
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
yum clean all
yum makecache
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config
setenforce 0yum方式搭建PHP网站用于压测
yum -y install httpd php php-mysqlnd php-gd
vi /var/www/html/index.php
<?php
phpinfo();
?>修改系统文件配置
vi /etc/security/limits.conf   最底部添加
#修改文件打开限制
*                soft    core            unlimited
*                hard    core            unlimited
*                soft    nproc           1000000
*                hard    nproc           1000000
*                soft    nofile          1000000
*                hard    nofile          1000000
*                soft    memlock         32000
*                hard    memlock         32000
*                soft    msgqueue        8192000
*                hard    msgqueue        8192000重启设备,让系统配置生效
ulimit -n    查看limit配置是否生效systemctl start httpd
systemctl enable httpd
查看web1的硬件配置
#查看CPU个数
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
#查看CPU总线程数
cat /proc/cpuinfo |grep "processor"|sort|uniq|wc -l
#查看内存
free -h
#查看硬盘
lsblk |egrep "^sd[a-z]"

在这里插入图片描述
web2跟上面一样搭建网站,做系统配置

查看web2的硬件配置
#查看CPU个数
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
#查看CPU总线程数
cat /proc/cpuinfo |grep "processor"|sort|uniq|wc -l
#查看内存
free -h
#查看硬盘
lsblk |egrep "^sd[a-z]"

在这里插入图片描述

2、Apache自带工具ab

ab是Apache自带的压力测试工具。它可以对apache服务器进行网站访问压力测试,生成详细的网站测试信息,从而帮助开发者优化网站。

在压测设备上测试web1

yum install -y httpd-tools
ab -c 100 -n 2000 -k http://192.168.116.133/index.php-c  指定并发数
-n  指定总共请求数
-k  以持久性连接测试Server Software:        Apache/2.4.6       #httpd的版本
Server Hostname:        192.168.116.133    #主机IP
Server Port:            80                 #主机端口Document Path:          /index.php         #网页文件名字
Document Length:        61877 bytes        #网页文件大小Concurrency Level:      100                #并发量
Time taken for tests:   2.566 seconds      #测试总共时间
Complete requests:      2000               #请求总数量
Failed requests:        203                #失败的请求数(Connect: 0, Receive: 0, Length: 203, Exceptions: 0)
Write errors:           0                  #写入错误
Keep-Alive requests:    0                  #保持请求连接数
Total transferred:      124119771 bytes   #全部请求大小
HTML transferred:       123753771 bytes    #HTML请求大小#主要看这几个数值
Requests per second:    779.47 [#/sec] (mean)  #每秒处理请求个数
Time per request:       128.293 [ms] (mean)    #每秒请求时间
#并发平均请求时间
Time per request:       1.283 [ms] (mean, across all concurrent requests)
#传输速率
Transfer rate:          47239.93 [Kbytes/sec] received#连接时间
Connection Times (ms)最小值    平均值    中位数    最大值min  mean[+/-sd] median   max
#连接时间
Connect:        0    1   1.5      0       9
#数据处理时间
Processing:     6  124  22.5    124     625
#等待时间
Waiting:        2  123  19.5    123     187
#全部时间
Total:         15  125  21.7    125     626Percentage of the requests served within a certain time (ms)50%    12566%    12775%    12880%    12890%    13595%    15998%    18399%    187100%    626 (longest request)

在压测设备上测试web2

yum install -y httpd-toolsab -c 100 -n 2000 -k http://192.168.116.134/index.phpServer Software:        Apache/2.4.6
Server Hostname:        192.168.116.134
Server Port:            80Document Path:          /index.php
Document Length:        61877 bytesConcurrency Level:      100
Time taken for tests:   0.898 seconds
Complete requests:      2000
Failed requests:        198(Connect: 0, Receive: 0, Length: 198, Exceptions: 0)
Write errors:           0
Keep-Alive requests:    0
Total transferred:      124119797 bytes
HTML transferred:       123753797 bytes
Requests per second:    2227.90 [#/sec] (mean)
Time per request:       44.885 [ms] (mean)
Time per request:       0.449 [ms] (mean, across all concurrent requests)
Transfer rate:          135022.76 [Kbytes/sec] receivedConnection Times (ms)min  mean[+/-sd] median   max
Connect:        0    2   1.6      1       8
Processing:     8   42   5.3     42      56
Waiting:        3   40   5.3     40      53
Total:         16   44   4.6     43      58Percentage of the requests served within a certain time (ms)50%     4366%     4575%     4680%     4790%     4995%     5098%     5399%     54100%     58 (longest request)

web1的主要数值

这个数值一般为0是最好的
Failed requests:        203                #失败的请求数(Connect: 0, Receive: 0, Length: 203, Exceptions: 0)性能差的设备每秒处理请求较低
Requests per second:    779.47 [#/sec] (mean)  #每秒处理请求个数性能差的设备时间延迟都较高
Time per request:       128.293 [ms] (mean)    #每秒请求时间
#并发平均请求时间
Time per request:       1.283 [ms] (mean, across all concurrent requests)性能差的设备传输速率较低
#传输速率
Transfer rate:          47239.93 [Kbytes/sec] received

web2的主要数值

这个数值一般为0是最好的
Failed requests:        198(Connect: 0, Receive: 0, Length: 198, Exceptions: 0)性能好的设备每秒处理请求较高
Requests per second:    2227.90 [#/sec] (mean)性能好的设备时间延迟都较低
Time per request:       44.885 [ms] (mean)
Time per request:       0.449 [ms] (mean, across all concurrent requests)性能好的设备传输速率较高
Transfer rate:          135022.76 [Kbytes/sec] received

3、webbench

webbench:Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。

GitHub代码:webbench源码
webbench官网:webbench
在压测设备编译安装webbench

yum install -y gcc ctags
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar xf webbench-1.5.tar.gz
mkdir -m 644 -p /usr/local/webbench/man/man1  创建安装目录 
cd webbench-1.5
make     开始编译
#出现下面这个警告忽略即可
cc -Wall -ggdb -W -O   -c -o webbench.o webbench.c
webbench.c: 在函数‘alarm_handler’中:
webbench.c:77:31: 警告:未使用的参数‘signal’ [-Wunused-parameter]static void alarm_handler(int signal)^
cc -Wall -ggdb -W -O  -o webbench webbench.o  
ctags *.cmake install PREFIX=/usr/local/webbench
cp webbench /usr/bin/命令行选项:
短参	长参数	作用
-f	--force	    不需要等待服务器响应
-r	--reload	发送重新加载请求
-t	--time	    运行多长时间,单位:秒"
-p	--proxy server:port	使用代理服务器来发送请求
-c	--clients	创建多少个客户端,默认1个"
-9	--http09	使用 HTTP/0.9
-1	--http10	使用 HTTP/1.0 协议
-2	--http11	使用 HTTP/1.1 协议
--get	        使用 GET请求方法
--head	        使用 HEAD请求方法
--options	    使用 OPTIONS请求方法
--trace	         使用 TRACE请求方法
-?/-h	--help	打印帮助信息
-V	--version	显示版本号

测试2个网站的性能

测试web1
webbench -c 1000 -t 10 http://192.168.116.133/index.php可以看到当并发为1000时,每分钟响应请求数38040个,每秒钟传输数据量38634276字节
Speed=38040 pages/min, 38634276 bytes/sec.总共请求数量为6340个
Requests: 6340 susceed, 0 failed.测试web2,可以看到几个数值都比web1好很多
webbench -c 1000 -t 10 http://192.168.116.134/index.php可以看到当并发为1000时,每分钟响应请求数84474个,每秒钟传输数据量85981248字节
Speed=84474 pages/min, 85981248 bytes/sec.总共请求数量为14079个
Requests: 14079 susceed, 0 failed.

4、Windows下安装Apache-Jmeter

Apache JMeter 可用于测试静态和动态资源、Web 动态应用程序的性能。
它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。

jmeter需要java环境,所以需要安装java
下载java:Windows-java8,然后直接打开安装
在这里插入图片描述
全部选择默认和下一步即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
右键此电脑点击属性
在这里插入图片描述
选择高级系统设置
在这里插入图片描述
选择环境变量
在这里插入图片描述
选择新建系统变量
在这里插入图片描述
输入java的安装目录,设置为变量

变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_181

在这里插入图片描述
然后再新建classpath变量

classpath
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

在这里插入图片描述
最后在系统变量找到Path,点击编辑,修改Path变量
在这里插入图片描述
新建多一个java路径
在这里插入图片描述
在Path添加

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

在这里插入图片描述
在这里插入图片描述
最后重启下系统,让变量生效。
重启后打开CMD,查看能否识别到java
在这里插入图片描述
在这里插入图片描述
安装Jmeter
下载软件包:jmeter-5.2.1
将安装包解压后放在C盘

新建系统变量
创建jmeter的路径变量

JMETER_HOME
C:\apache-jmeter-5.2.1

在这里插入图片描述
修改classpath变量值

改为下面这样
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar

在这里插入图片描述
双击脚本运行jmeter
C:\apache-jmeter-5.2.1\bin\jmeter.bat

更改为中文
在这里插入图片描述
测试web1
在TestPlan右键选择添加线程组
在这里插入图片描述
设置线程数(相当于请求数),Ramp-Up(总共请求时间),不用保存,直接下一步
在这里插入图片描述
然后右键web1线程组
在这里插入图片描述
输入网址信息
在这里插入图片描述
再次右键web1线程组,添加汇总报告
在这里插入图片描述
点击运行
在这里插入图片描述
提示是否保存这次操作计划,直接选择no即可
在这里插入图片描述
稍等一下,就可以看到web1网站测试结果
可以看到异常为16.76%,吞吐量为220.6/sec
一般情况下,异常值越小越好,吞吐量越大越好,可以看到web1的性能比web2差
在这里插入图片描述
按照上面操作添加web2进行测试,查看结果
可以看到异常为19.84%,吞吐量为389.9/sec
一般情况下,异常值越小越好,吞吐量越大越好,可以看到web2的性能比web1好
在这里插入图片描述


http://chatgpt.dhexx.cn/article/MNmjqyAA.shtml

相关文章

10大主流压力测试工具推荐

在移动应用和Web服务正式发布之前&#xff0c;除了进行必要的功能测试和安全测试&#xff0c;为了保证互联网产品的服务交付质量&#xff0c;往往还需要做压力/负载/性能测试。然而很多传统企业在试水互联网的过程中&#xff0c;往往由于资源或产品迭代速度等原因忽视了这一块工…

Linux中Makefile详细教程

目录 Makefile Makefile的介绍 Makefile简单的编写 .PHONY 问题&#xff1a; 如果只执行make&#xff0c;它执行的是Makefile里哪一段语句呢&#xff1f; 怎么知道我的可执行程序是最新的呢&#xff1f; Makefile编译多个文件 进度条小程序 Makefile Makefile的介绍 …

Makefile入门教程

转载&#xff1a; https://www.linuxidc.com/Linux/2014-08/105304.htm Makefile入门教程 回顾 首先&#xff0c;我把需要的文件全部写出来&#xff08;在《GCC学习笔记》处&#xff09;。 main.c文件 #include <stdio.h> #include "math.h" int main() { int…

Makefile教程(入门介绍)

文章目录 前言一、Makefile介绍二、make和Makefile的关系三、学习makefile的意义四、编写一个简单的Makefile总结 前言 本篇文章将带大家学习Makefile&#xff0c;Makefile在文件的编译中起到重要作用&#xff0c;在Linux中我们也是经常使用到Makefile&#xff0c;下面我将会带…

VCS使用Makefile教程

在从事IC验证工作的过程中&#xff0c;其实最开始的一步不是写什么test plan或者说verification of structure&#xff0c;而是应该知道makefile怎么写&#xff0c;先写出一个通用&#xff0c;基础的编译仿真脚本&#xff0c;可能会让你编译仿真轻松一点。 这份Makefile使用教程…

Makefile教程(Makefile的结构)

文章目录 前言一、Makefile的结构二、深入案例三、Makefile中的一些技巧总结 前言 一、Makefile的结构 Makefile 通常由一系列规则组成&#xff0c;每条规则定义了如何从源文件生成目标文件。每个规则又由目标、依赖和命令三部分组成。 下面是 Makefile 规则的基本结构&…

linux初试gcc makefile菜鸟教程

linux初试gcc makefile菜鸟教程 1.实验环境 1.ubuntu16(安装教程) 2.gcc (gcc安装&#xff1a;apt install gcc) 3.make (make安装 apt install make) 用C举个小例子 2.源码 main.c /*************************************************************************> File N…

Makefile使用教程

目录 一、前言 二、VCS的常用命令参数 2.1. 一步法 2.2. 两步法 2.3. 三步法 三、常见错误 四、参考资料 一、前言 以Makefile启动VCS为例来讲解如何使用命令参数&#xff0c;VCS编译文件会引入过多参数&#xff0c;试想如果我们每次都需要终端中敲击过多参数才能运行一…

Makefile详细教程

Makefile详细教程 我编写本指南是因为我永远无法完全理解 Makefile。 他们似乎充斥着隐藏的规则和深奥的符号&#xff0c;提出简单的问题并没有得到简单的答案。 为了解决这个问题&#xff0c;我花了几个周末的时间坐下来阅读所有关于 Makefile 的内容。 我已将最关键的知识浓…

最实用的Makefile教程 真的很简单(搞不明白网上的教程写那么复杂干嘛)

前言 其实我的要求不高&#xff0c;我就是想要写个Makefile&#xff0c;把我那些需要反复编译的文件处理一下就可以了&#xff0c;所以我当时就拼命地在网上找关于Makefile的教程&#xff0c;结果看到的教程都是啰里啰嗦一大堆&#xff0c;看得我云里雾里。 大家要知道&#…

Makefile的入门完整教程(包学包会)

Makefile的完整入门教程&#xff08;实现不了来打我TAT&#xff09; 看完能够了解Makefile是什么&#xff1b;我们能用makefile做什么&#xff1b;makefile的简易使用 1、什么是Makefile Makefile 可以简单的认为是一个工程文件的编译规则&#xff0c;描述了整个工程的编译和…

Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程&#xff0c;买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊&#xff0c;可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来&#xff0c;方便学习。 后记&#xff0c;看完发现这篇文章和《Linux环境下的C…

Makefile基础教程

前期准备 在真正使用Makefile之前&#xff0c;我们首先先写四个c文件和相应的h文件&#xff0c;分别是fun0.c,fun1.c,fun2.c,fun0.h,fun1.h,fun2.h以及main.c //fun0.c #include "fun0.h" void print0(){printf("hello world 0"); }//fun0.h #include &l…

Makefile教程(掌握这里足够)

众所周知&#xff0c;在Linux环境下进行项目开发那就少了使用make来构建和管理自己的工程。如果想要更加深入的学习&#xff0c;我在这里推荐一本书 https://www.jianguoyun.com/p/DZWKrLIQjKL5Bxi0z5UD 访问密码&#xff1a;KvhT2v 1. makefile的命名 默认的情况下&#xff…

Makefile 编写教程(由简至难)

目录 一、测试代码二、.c 文件与Makefile同级三、.c文件与Makefile不同级四、链接静态库 一、测试代码 本文以将main.c add.c common.h三个文件编译成一个可执行文件为例&#xff0c;来讲解Makefile的编写。以下是每个文件的代码&#xff08;很简单&#xff0c;测试用&#xf…

好看的vscode字体

vscode下载上面出现的字体(自行百度搜索) (Cascadia Code, 等线)(等线是中文, Cascadia Code是英文, 自认为比较cool的搭配, 也可以自行选择)然后放到C:\Windows\Fonts 会自动安装就完事了~ 欢迎大家关注我的公众号:<前端成长指南> 我会把我的原创作品陆续放在上面

Unity3D中字体样式

字体样式分为三种 系统默认字体 自定义字体&#xff08;包括全部字体&#xff09; 自定义字体&#xff08;不包括全部字体&#xff09;系统默认字体描述优点内存占用小缺点没有艺术效果&#xff0c;没有灵魂 自定义字体&#xff08;包括全部字体&#xff09;描述优点具有一定…

前端HTML字体和文本样式

前端HTML字体和文本样式 文章目录 前端HTML字体和文本样式1.字体样式1.1字体大小1.2 字体粗细1.3 字体样式&#xff08;是否倾斜&#xff09;1.4字体类型1.5 样式层叠问题1.6 字体复合属性 2.文本样式2.1 文本缩进2.2 文本水平对齐方式2.3文本修饰 3.行高 属性表示注意点font-s…

layui表头样式_Layui表格好看样式

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Layui表格好看样式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术&#xff1a;web 作者&#xff1a;xq 撰写时间&#xff1a;2019.7.27 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

android+字体样式包,android 改变全局字体样式(第三方字体包)

android 改变全局字体样式 参考&#xff1a;http://stackoverflow.com/questions/2711858/is-it-possible-to-set-font-for-entire-application/16883281#16883281 1.将要替换的字体包放到assets下 2.具体代码&#xff1a; //设置新的字体样式 public static void setDefaultFo…