关于项目的压测

最近工作接触到了压测,因为之前的公司只做业务,像压测运维方面根本就不会有机会接触到,

自己也比较懒,不会去主动了解,到了新公司,很多东西要从头开始看,所以也是琢磨了一下,

学习还是比较有意思。那么就上一下自己的案例,简单用文字记录一下;

 

 

 

  1.首先是jmeter的安装,因为是java写的,所以jdk是少不了的。装完jdk,再装jmeter,

配置下环境变量啥的云云~总之就是那些

 

 

 2.压测环境,一开始就在本地调参,自己的电脑去发起jmeter的测试,这样测试是比较不规范的,

没法测出极限的qps。另外,服务中要调用的数据库,redis,最好是要有专门的压测环境去做

这件事情。所以我把服务重新部署了一遍,改用测试库跟测试用redis,另外我在物理机上部署了

jmeter,这样就不用在本地测试了,服务也部署在另外一台机器,使用的是6核3g的配置。

 

 

3.测试的参数:

a.在本地jmeter设置一个测试计划
b.添加一个线程组
c.在线程组下添加一个即将测试的http请求 ip/端口/参数
d.在线程组下添加监听器,例如 结果树/汇总报告/聚合报告 ,一般这几个报告就够了
e.保存为一个计划xxx.jmx, 上传到物理机上的jmeter的bin 目录下,bin目录下输入命令直接执行计划就可以
f.压测结果可以从物理机上download下来用本地jmeter打开查看图表,可以配合ares监控服务器cpu和内存指标

(我司专门有监控的系统,所以不需要特地的做资源的监测,实际上可以在jmeter中安装插件,配置监测器,监测

指定服务器的指标)

 

 

 

说明:然后是关于线程组的设置
1.设置线程数 这个比较随意,我这边设置的100 200都可以
2.ramp-up代表起线程数的时间,默认为1
3.循环次数的话,就是每个线程要跑的次数 ,比如设置100线程 1000循环,就是10w数据 ,

可以把循环次数设置高一点,这样压测时间长一点,可以测出服务的最大吞吐量。

4.还有一种情况,就是在线程组下添加定时器,选择常数吞吐量计时器,

可以手动控制最大吞吐量(服务能达到的上限),目标吞吐量参数为每分钟的样本量

,如果设置6000就是100*60,吞吐量上限就在100。 可以配合线程组中的调度器使用,将循环次数设置为永远,

调度器持续时间为指定时间,就可以让在指定时长和指定的吞吐量下进行压测。

 

posted @ 2021-11-18 10:57  火星包up  阅读(217)  评论(0编辑  收藏  举报