Siege---Linux性能压测工具及结果分析

Siege---Linux性能压测工具及结果分析,第1张

@[性能测试,yoyoyang]

-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件$HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行.

-v 运行时能看到详细的运行信息

-c n,或–concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多

-i,–internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效

-d n,–delay=n hit每个url之间的延迟,在0-n之间

-r n,–reps=n 重复运行测试n次,不能与 -t同时存在

-t n,–time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H)

-l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义

-R SIEGERC,–rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为$HOME/.siegerc

-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt

-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定

Transactions访问次数

Availability 成功次数

Elapsed time 测试用时

Data transferred 测试传输数据量

Response time平均响应时间

Transaction rate 每秒事务处理量

Throughput吞吐率

Concurrency 并发用户数

Successful transactions 成功传输次数

Failed transactions失败传输次数

Longest transaction 最长响应时间

Shortest transaction 最短响应时间

yum -y install iftop

iftop

top

ab(Apache Bench)是啥?

ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试。ab建议在linux环境下使用。

为啥要压力测试工具?

因为你不给你的网站压力,你不知道项目的最大的容量是多少,自己的知识有多少。 在一定范围里,压力达到一定程度,动力和容量也就达到顶峰 。所以说没有最大的容量,只有极致的性能优化。

压力测试工具,另一方面也为测试提供一个标准,为当前需要优化提供基础数据。

ab有什么能力?

ab作为Apache自带的软件,虽然性能不是最强,但是作为一般的压力测试已经足够了。

ab的安装

一般已经安装了Apache就不需要安装,需要安装的话可以自行搜索。

ab的主要命令

ab主要使用的两个选项就是-n和-c。其他选项使用命令 **ab -h **进行查看。

命令格式是:ab -n10 -c10 URL

命令解说:

自带的命令选项说明如下

上图所示,-n指的是请求URL的数量,-c是指每次请求的并发数。展示的命令格式的意义就是:对URL进行10次请求,每次并发数是10个,总共请求了100次。

注:URL最后一定要补充一个"/",如: http://www.baidu.com/

测试性能主要关心那几个点?

对于ab工具,我们需要关注的是服务器软件,每秒请求数(Requests per second),单个请求的耗时(Time per request)。

下面是测试的结果解析:

测试的几个原则

1、测试工具和测试数据时,使用到别人的网址时,-n和-c的参数不能太大。

2、测试当前的机器,最好用另一台机器测试。

3、测试修改结果,最好是某个功能完善后才测,否则会导致结果有差异。

本文只讲jmeter分布式压测怎么在Linux环境下配置:

使用分布式压测,是因为单个压测机并发到不到系统要求,所以多个压测机同时去压。

一般是由一个主机(master)和几台压力机(slave)组成。

主机 主要是起到启动和收集结果功能(当然也可以参与压测但不建议),测试脚本jmx在这台机器下,执行的时候会发送给每台压力机。

压力机 主要接受主机发送的压测脚本,同时进行压测,并把结果回传给主机。

以下是本人的压测环境,可以参考的去配置:

都是在Linux环境下(有些是主机Windows,压力机Linux,都是这样配置)

master主机:10.244.162.8

slave压测机(三台):10.244.162.9,10.244.162.10,10.244.162.11

主机ping一下压测机,是否可以ping通,否则关闭防火墙或者多个网卡(一台机器可能配置多个网卡多个IP,尤其是Windows当做主机)。

jdk,jmeter安装在主机和压力机下,尽量版本统一,jmeter在这几个机器服务都可以启动jmeter -v,如果权限不够到bin/目录下,命令: chmod 777 jmeter jmeter-server jmeter.sh 。(安装比较简单,这里就不多赘述)

保存。

在apache-jmeter-5.1.1/bin下执行./jmeter-server(代表jmeter启动,监听状态,等待主机发送测试脚本和执行命令) ,

有些启动命令:./jmeter-server -Djava.rmi.server.hostname=10.244.162.10(当前机器的ip),我觉得都行,没编辑配置文件那一项这样启动。

启动就设置完成。

如果是Windows当主机,重启一下jmeter在运行-远程启动既可以看到压测机。

如果是Linux下主机,需要用到命令:

我是在测试jmx脚本的目录下执行,这样方便收集信息。

sh (jmeter启动)  -n -t (jmx脚本) -R  (压力机ip,多个中间用英文逗号隔开) -l (test.jtl)  -e -o  (压测报告结果html文件夹)

sh /app/apache-jmeter-5.2.1/bin/jmeter.sh -n -t test.jmx -R 10.244.162.9,10.244.162.10 -l test.jtl  -e -o  test

注意:主机只传jmx给压力机,如果压测脚本有引用变量文件,比如csv,txt文件等是不传的,压力机也要有这些变量文件,复制过去存放的目录和上面压力机./jmeter-server启动的目录一致(就是你在哪个目录启动的就放在哪个目录下),否则压力机找不到变量文件,执行会报错或者直接结束无测试结果。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8763801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存