linux 压力测试程序安装部署

linux 压力测试程序安装部署(包括CPU、内存、网站)

测试内存服务/版本测试CPU服务/版本
memtester 4.5.1sysbench 1.1.0
系统版本硬件配置
Rocky9.010核 512G内存 40线程

这里先提及一下 centos 7.4~ 7.9 版本安装sysbench 服务
如下:

yum install epel-release
yum install sysbench

测试CPU负载:

sysbench --test=cpu  --threads=38 --cpu-max-prime=2000000 run

参数详解: 
--test 
是sysbench要执行的测试类型,可选项包括fileio、cpu、memory、threads、mutex,可以使用--test参数指定。
--threads 
是线程数,若设置为2,则sysbench会启动2个线程,同时分别进行素数的计算,默认值为1。
--cpu-max-prime
是素数生成数量的上限,默认值为10000。

添加循环: 循环100次,看看CPU是否正常
more  cpu.sh
#!/bin/bash
for i in {1..100}
do
	sysbench  cpu  --threads=38  --cpu-max-prime=2000000 run
done

回归正文:centos 安装会简单一些,直接yum安装就可以,但是在Rocky版本中,不能使用yum安装,只能去下载未编译安装的tar或zip包,自己解压,编译安装。

下载地址:

在这里插入图片描述

如果以上地址打不开:
链接:https://pan.baidu.com/s/17izV9i910IOzh9Bg69bULA
提取码:8888
百度网盘自提
将下载好的包放到服务器上

安装依赖包
yum install gcc gcc-c++  autoconf  automake libtool  lrzsz vim unzip -y
mv sysbench-master.zip  /opt
cd /opt/
unzip sysbench-master.zip
mv sysbench-master sysbench
cd /opt/sysbench && ./autogen.sh

默认 sysbench 是支持测试mysql的 但是这里我们就只想用sysbench做性能测试,不想安装mysql。
那怎么办? 在后头加个–without-mysql就ok了(不编译测试mysql的功能模块)
如果要测试mysql ,前提是mysql必须安装好,如果没安装好mysql 编译安装时会报如下错误

	configure: error: mysql_config executable not found
********************************************************************************
ERROR: cannot find MySQL libraries. If you want to compile with MySQL support,
       please install the package containing MySQL client libraries and headers.
       On Debian-based systems the package name is libmysqlclient-dev.
       On RedHat-based systems, it is mysql-devel.
       If you have those libraries installed in non-standard locations,
       you must either specify file locations explicitly using
       --with-mysql-includes and --with-mysql-libs options, or make sure path to
       mysql_config is listed in your PATH environment variable. If you want to
       disable MySQL support, use --without-mysql option.
./configure --prefix=/opt/sysbench --without-mysql 
make && make install
编译完成 
# 查看版本
[root@localhost sysbench]# ./bin/sysbench --version 
sysbench 1.1.0
ln -s /opt/sysbench/bin/sysbench  /usr/bin/
以上就完成安装了

开始压力测试

测试CPU负载:
sysbench --test=cpu  --threads=38 --cpu-max-prime=2000000 run
注: 有的版本结尾需要加run 有的版本不需要。

参数详解: 
--test 
是sysbench要执行的测试类型,可选项包括fileio、cpu、memory、threads、mutex,可以使用--test参数指定。
--threads 
是线程数,若设置为2,则sysbench会启动2个线程,同时分别进行素数的计算,默认值为1。
--cpu-max-prime
是素数生成数量的上限,默认值为10000。

添加循环: 循环100次,看看CPU是否正常
more  cpu.sh
#!/bin/bash
for i in {1..100}
do
	sysbench  cpu  --threads=38  --cpu-max-prime=2000000 run
done

测试内存

使用memtester 进行内存压力测试

下载memtester 安装包:

官方地址:

这个版本是我下载好的且编译安装完成的,下载解包就能用
但是适用rocky9及centos8系统的,centos7需要下载下面那个链接,自己编译安装
链接:https://pan.baidu.com/s/1F3vzj_iuthuDSArPg8zTeQ
提取码:8888

此版本是没有编译安装过的,下载之后需 make && make install
链接:https://pan.baidu.com/s/1pVkROrj2I87niVKyoduOdw
提取码:8888

在这里插入图片描述

如果运行报上图的错
./memtester: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by ./memtester)
./memtester: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./memtester)
则下载没有编译安装过的版本
下载完成之后
tar -xf memtester-4.5.1.tar.gz
cd memtester-4.5.1/
make && make install
报错一:
-bash: make: command not found
处理:
yum -y install make

报错二:
./compile: line 3: exec: cc: not found
make: *** [Makefile:82: memtester.o] Error 127
处理:
yum -y install gcc

继续运行
make && make install
nohup ./memtester 500G  2  > cpu.log &

在这里插入图片描述

将第一个编译安装好的包下载到本地,上传至服务器

tar -xf memtester-4.5.1.bak.tar.gz
cd memtester-4.5.1
free -h # 查看内存大小

在这里插入图片描述
启用压力测试命令:

nohup ./memtester 500G  2  > cpu.log &
命令详解:
500G: 是内存大小,指定内存大小不能大过服务器原本内存
例:目前设备内存 512G 查看时是 503G  那压力测试大小最高只能是502G 我选择500G
2: 是测试几次 2是循环测试2次
需要时间大概是一天一夜。运行的时候就指定到后台运行,最后查看日志即可,正常情况都是ok就可以

在这里插入图片描述
也可以在测试的时候使用 top 实时查看
查看进度条与CPU温度

yum -y install lm_sensors

vim mem.sh
sensors | grep "Physical\|Package"  | awk  '{print $4}'
echo '#####################################################################################' 
cat /opt/src/mem.log 
echo -e "\n"
echo '#####################################################################################' 
free -h

执行结果如下:
+56.0°C
+51.0°C
#####################################################################################
memtester version 4.5.1 (64-bit)
Copyright (C) 2001-2020 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 125952MB (132070244352 bytes)
got  125952MB (132070244352 bytes), trying mlock ...locked.
Loop 1/1:
  Stuck Address       : ok         
  Random Value        : \

#####################################################################################
               total        used        free      shared  buff/cache   available
Mem:           125Gi       124Gi       1.1Gi       5.0Mi       339Mi       664Mi
Swap:          4.0Gi        44Mi       4.0Gi


网站压力测试

使用的是ab命令:
ab是一个用于 Apache HTTP服务器的压力测试工具,它可以模拟多个并发用户对一个网站进行访问,从而帮助评估服务器的性能。

安装ab命令:
yum -y install httpd-tools

[root@VM-2-14-centos ~]# ab --help
ab: wrong number of arguments
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
    -n requests     Number of requests to perform   ##要执行的请求数
    -c concurrency  Number of multiple requests to make at a time  ##单次发出的并发请求数
    -t timelimit    Seconds to max. to spend on benchmarking
                    This implies -n 50000  ##用于测试的最大秒数,等价于 -n 等于50000
    -s timeout      Seconds to max. wait for each response
                    Default is 30 seconds  ##等待每个响应的最长秒数,默认值为30秒
    -b windowsize   Size of TCP send/receive buffer, in bytes  ##TCP发送/接收缓存区的大小(字节)
    -B address      Address to bind to when making outgoing connections   ##建立传出连接时要绑定的地址
    -p postfile     File containing data to POST. Remember also to set -T  ##包含POST数据的文件。还需要设置-T
    -u putfile      File containing data to PUT. Remember also to set -T   ##包含PUT数据的文件,还需要设置-T
    -T content-type Content-type header to use for POST/PUT data, eg.
                    'application/x-www-form-urlencoded'
                    Default is 'text/plain'  ## 用于POST/PUT数据的内容类型头。
    -v verbosity    How much troubleshooting info to print  ##设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。
    -w              Print out results in HTML tables  以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表
    -i              Use HEAD instead of GET  ##执行HEAD请求,而不是GET
    -x attributes   String to insert as table attributes  ##设置<table>属性的字符串。
    -y attributes   String to insert as tr attributes  ##设置<tr>属性的字符串。
    -z attributes   String to insert as td or th attributes  ##设置<td>属性的字符串。
    -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)  ##对请求附加一个Cookie行。 其典型形式是name=value的一个参数对。 此参数可以重复。
    -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                    Inserted after all normal header lines. (repeatable)  ##对请求附加额外的头信息。 此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对。
    -A attribute    Add Basic WWW Authentication, the attributes are a colon separated username and password.  ##对服务器提供BASIC认证信任。 用户名和密码由一个:隔开,并以base64编码形式发送。 无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
    -P attribute    Add Basic Proxy Authentication, the attributes are a colon separated username and password.  ##对一个中转代理提供BASIC认证信任。 用户名和密码由一个:隔开,并以base64编码形式发送。 无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送
    -X proxy:port   Proxyserver and port number to use  ##对请求使用代理服务器。
    -V              Print version number and exit  ##显示版本号并退出。
    -k              Use HTTP KeepAlive feature  ##启用HTTP KeepAlive功能,即, 在一个HTTP会话中执行多个请求。 默认时,不启用KeepAlive功能。
    -d              Do not show percentiles served table.   ##显示”percentage served within XX [ms] table”的消息(为以前的版本提供支持)。
    -S              Do not show confidence estimators and warnings.  ##不显示中值和标准背离值, 而且在均值和中值为标准背离值的1到2倍时,也不显示警告或出错信息。 默认时,会显示 最小值/均值/最大值等数值。(为以前的版本提供支持)。
    -q              Do not show progress when doing more than 150 requests  ##如果处理的请求数大于150, ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。 此-q标记可以抑制这些信息。
    -l              Accept variable document length (use this for dynamic pages)  ##接受可变文档长度(用于动态页面)
    -g filename     Output collected data to gnuplot format file.  ##把所有测试结果写入一个’gnuplot’或者TSV (以Tab分隔的)文件。 此文件可以方便地导入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行为标题。
    -e filename     Output CSV file with percentages served  ##产生一个以逗号分隔的(CSV)文件, 其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。 由于这种格式已经“二进制化”,所以比’gnuplot’格式更有用。
    -r              Don't exit on socket receive errors.  ##套接字接收错误时不退出。
    -m method       Method name   ##方法名称
    -h              Display usage information (this message)  ##显示使用方法。
    -I              Disable TLS Server Name Indication (SNI) extension   ##禁用TLS服务器名称指示(SNI)扩展
    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)  ##指定SSL/TLS密码套件。
    -f protocol     Specify SSL/TLS protocol (SSL2, TLS1, TLS1.1, TLS1.2 or ALL)  ##指定SSL/TLS协议(SSL2、TLS1、TLS1.1、TLS1.2或ALL)
    -E certfile     Specify optional client certificate chain and private key  ##指定可选的客户端证书链和私钥

开始测试

ab -k -t 10 -s 5 -n 5000 -c 100 http://api.server.cn:8088
-k: 启用 HTTP KeepAlive 功能,允许客户端和服务器在单个连接上发送和接收多个请求。
-t 10: 设置测试运行的时间长度为 10 秒,ab 工具将持续发送请求直到达到指定的时间长度。
-s 5: 设置等待服务器响应的超时时间为 5 秒。如果服务器在 5 秒内未响应,则ab工具将视其为超时。
-n 5000: 指定总共发送的请求数为 5000。在整个测试过程中,ab 工具将发送总共 5000 个请求。
-c 100: 设置并发请求的数量为 100。这表示在任何给定时刻
		ab 工具将同时保持 100 个并发连接向服务器发送请求。

通过这个命令对 http://api.cn:8088 这个地址进行压力测试,持续时间为 10 秒,
总共发送 5000 个请求,每次发送 100 个并发请求,
并且启用了 KeepAlive 功能和设置了超时时间为 5 秒。

执行结果

This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking api.server.com (be patient)

Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Completed 5000 requests
Finished 5000 requests

Server Software:        nginx/1.20.1 ## nginx版本
Server Hostname:        api.cn ##域名或主机地址
Server Port:            8088  ##请求端口号

Document Path:          / ##文档路径 
Document Length:        171 bytes ## 页面字节数

Concurrency Level:      100   ##请求的并发数
Time taken for tests:   13.189 seconds  ##总访问时间
Complete requests:      10000	##请求成功数量	
Failed requests:        1945	 ##请求失败数量
(Connect: 0, Receive: 0, Length: 1945, Exceptions: 0)  
Non-2xx responses:      1945 	 ##非2xx响应			
Total transferred:      12896992 bytes      ##请求总数据大小(包括header头信息)
Total body sent:        3640000			
HTML transferred:       6598043 bytes		 ##HTML页面实际总字节数
Requests per second:    758.21 [#/sec] (mean)    ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
Time per request:       131.890 [ms] (mean) 	##用户平均请求等待时间
Time per request:       1.319 [ms] (mean, across all concurrent requests)  ##服务器平均处理时间,也就是服务器吞吐量的倒数
Transfer rate:          954.94 [Kbytes/sec] received   ##每秒获取的数据长度 
                        269.52 kb/s sent
                        1224.46 kb/s total     

Connection Times (ms)  ##连接时间(ms)
  	           min  mean[+/-sd] median   max
Connect:        0    0   0.7      0      10  ##连接时间
Processing:    13  131  91.9    110     791  ##处理时间
Waiting:       12  131  91.9    110     790  ##等待时间
Total:         22  131  91.9    111     791  ##总时间
##           最小值  平均值     中值   最大值
Percentage of the requests served within a certain time (ms)
  50%     101     ##50%用户请求在31ms内返回
  66%     130     ##66%用户请求在37ms内返回
  75%     147     ##75%用户请求在38ms内返回
  80%     160     ##80%用户请求在39ms内返回
  90%     203     ##90%用户请求在39ms内返回
  95%     296     ##95%用户请求在40ms内返回
  98%     443     ##98%用户请求在40ms内返回
  99%     559     ##99%用户请求在40ms内返回
 100%     791 (longest request)     ##100%用户请求在40ms内返回

以上就是压力测试工具安装部署使用流程,完工,下班。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux部署测试流程一般包括以下步骤: 1. 编写部署文档:将部署过程详细记录下来,包括所需软件、配置文件、依赖项等信息。 2. 环境准备:在目标机器上安装所需的操作系统和必要的软件包,并进行基本的配置。 3. 部署应用程序:将应用程序的代码和相关文件传输到目标机器上,并在目标机器上进行相应的配置。 4. 配置数据库和缓存:如果应用程序使用数据库或缓存服务,需要在目标机器上安装和配置相应的数据库和缓存服务。 5. 配置网络:根据应用程序的需求,进行网络配置,包括端口开放、防火墙配置等。 6. 启动应用程序:启动应用程序,并确保它能够正常运行。可以通过日志查看是否有异常或错误信息。 7. 进行功能测试:对应用程序的各项功能进行测试,确保其符合预期的功能要求。 8. 进行性能测试:对应用程序进行性能测试,包括负载测试、压力测试等,以验证其在不同场景下的性能表现。 9. 进行安全性测试:对应用程序进行安全性测试,包括漏洞扫描、代码审查等,以确保其安全性。 10. 进行兼容性测试:对应用程序在不同操作系统、不同浏览器等不同环境下进行测试,以验证其兼容性。 11. 进行可靠性测试:对应用程序进行长时间运行测试,以验证其可靠性和稳定性。 12. 编写测试报告:根据测试结果编写测试报告,包括测试过程、测试结果、问题及解决方案等。 以上是一般的Linux部署测试流程,具体的流程可能会因项目的需求而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值