服务性能测试和内存监控

在项目框架搭建好后,决定测试一下服务的性能,并测试一下是否存在内存泄漏等问题,所以决定开始测试之路。因为第一次搞,所以也是在摸索中前行。最后选择Jmeter作为服务性能测试工具,使用Jconsole作为内存监控工具。

1.jmeter的使用

下载地址:https://jmeter.apache.org/download_jmeter.cgi

选择版本下载即可,顺便下载插件包,地址:https://jmeter-plugins.org/install/Install/ ,下载 plugins-manager.jar 之后Jmeter的lib/ext目录下即可。

之后进入解压目录,进入bin目录,windows双击jmeter.bat即可打开。页面效果如下:

服务性能测试和内存监控

之后就可以添加线程组,右键选择线程组,填写线程数和循环次数即可。

服务性能测试和内存监控

线程组建好后右键线程组新建测试样本,注意层级,Sampler是新建在线程组下,我第一次使用都是同层结构导致一直无法正常使用。新建好后如下图,我这里建立的HTTP连接,其他选择如下图:

服务性能测试和内存监控

建好后如下图,此处选择百度首页作为测试:

服务性能测试和内存监控

建好Sampler后右键此Sampler新建监听器查看结果:(此处我建立了三种监听器,用来查看结果和汇总)

服务性能测试和内存监控

监听器建好之后,点击上方绿色三角启动测试,右侧扫把按钮为清空之前测试结果。

服务性能测试和内存监控

运行后可以在Listener查看结果:

服务性能测试和内存监控

备注:Response Times Over Time 是通过插件建立的,如果已经将插件管理jar放置到ext目录下,就可以在Options中选择Plugins Manager进行插件安装。

2.Jconsole的使用

Jconsole是JDK自带的监控工具,在JDK的bin目录下直接打开jconsole.exe即可,可选择本地应用和远程应用监控,本地监控直接选择即可,远程监控需要打开监控参数。

服务性能测试和内存监控

远程应用启动时需要增加JVM参数:-Djava.rmi.server.hostname=172.18.21.166 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=13214 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

指定host为远程主机ip,监控端口。

增加参数后启动即可被Jconsole监控。

在上方输入ip和端口,用户名密码即可开始监控,效果如下图:

服务性能测试和内存监控

此处我只是简单的看了内存使用情况和线程数目是否在预期内,运行一天后没有内存飙升,线程数也在预期之内,算是简单的完成了测试的目标。

以上就是服务测试工具Jmeter和Jconsole的基本使用,功能都是十分强大的,推荐大家使用。