压测流程

压测的时候准备工作

1.明确运行环境(避免环境污染),准备相应的压测环境

2.明确压测内容

3.预估压测结果,然后根据实际结果进行比较,得出相应的结论。

 

一般压测的时候,我会先本地压测,然后在没有环境污染的环境进行压测,主要原因是本地压测的时候,可以进行代码调整,这个时候压测的结果会不准,但是压测时间长的时候,基本可以看出一些系统问题,会报一些系统错误,就可以在本地调试了。在本地调试没问题,然后在没有环境污染的环境进行压测。然后本地压测结果进行参考。

在k8s压测比较好,因为k8s资源比较充足,然后cpu和内存比较好分配

一般压测的话,是对http请求进行压测的话,可以用jmeter进行压测,如果对mq进行压测,jmeter也可以,不过需要自己装插件就是了。

对http请求压测流程:

1.明确压测环境参数,如下:

配置 (内存和cpu配置),集群数量,并发线程数量,循环次数,吞吐量,错误率,cpu使用率,内存使用率

吞吐量(QPS):每秒钟处理请求次数

我在不同的配置进程压测,测试内存和cpu不同情况压测结果。

然后通过集群来测试一下,压测结果是不是成倍增加。

2.首先在当前环境一下,请求一个http,这个http不做任何业务逻辑,返回一个ok字符串就行,然后压测的出这个请求的吞吐量,这样的话,就是一个http的极限值,可以做为结果基础参考。

3.然后请求一个正常的http请求,这个就是要压测的http请求。这个http请求日志记录一下http请求需要花费多长时间,里面的每个业务逻辑也记录一下时间。最好每个redis和mq请求也记录一下时间,这样的话,可以明确出每个处理点花费的时间,这样子可以明确出哪个地方需要优化。

当然,如果集成调用链工具,进行埋点,统计各个点的时间,这个效果更好。

 

优化方案:

1.tomcat线程池优化

一般tomcat的线程数为200,这个线程数处理的吞吐量有点低,然后通过修改线程数,不断的压测,提高吞吐量。2核2g内存吞吐量最大大概在4000左右,所以线程数可以调整到2000-3000左右。

2.redis和mq优化

如果压测时候,发现redis和mq处理时间越来越长,就要看一下,redis和mq是哪里阻塞了。

  • 线程池数量够不够
  • tcp释放是否及时(window netstat -an|find "TIME_WAIT" /c) 
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

     

  • mq是不是有确认消息确认机制(能不能不要消息确认,这样的话,处理速度会非常高)
  • 如果确认是tcp没释放,可以单独压测redis或者mq或者httpclient,看是哪个引起的.

3.查看是不是有sleep等让线程暂停的方法

尽量不要用sleep方法,在高并发的时候会引起线程阻塞。如果不会影响线程的话,是可以用的

4.有写比较耗时的操作,可以尽量用异步线程处理,这样可以提高高并发,减少处理时间

 

jmeter压测

jmeter下载

https://jmeter.apache.org/download_jmeter.cgi

windows下载zip后,解压,然后到bin目录下,点击jmeter.bat启动既可

docker 安装比较简单

docker pull egaillardon/jmeter

#去除报告和日志
rm -rf *.log *.jtl
#选择压测计划和配置压测结果存放位置
docker run --interactive --tty --rm --volume /usr/local/jmeter:/jmeter egaillardon/jmeter --nongui --testfile http.jmx --logfile http.jtl

jmeter汉化

在bin/jmeter.properties

修改

language=zh_CN

jmeter使用步骤

1.新建线程组

右击添加线程,线程组

填写线程数和循环次数

2.由于http请求是通过body方式的,所以需要设置请求头

在线程组那边,右击添加,配置元件,http信息请求头,Content-Type:application/json

3.添加http请求,右击添加取样器,http请求

4.右击添加监听器,观察结果树和聚合报告

5.点击最上面的绿色三角形,就是表示运行压测,扫把表示清除压测结果。记得压测的时候,不要切换到聚合包括和观察树那边去,会影响压测结果。每次重新压测的时候,最好把上次的压测结果清除掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值