测试驿栈-由浅入深学性能 性能测试连载 (24)-jmeter 下的 cpu 指标监听与分析
性能答疑 QQ 群:697244251
概述
用 jmeter 做性能测试的时候,避免不了要去分析服务器资源。服务器分为 windows 和 linux,资源包括 cpu,内存,磁盘,jvm,网络等等。那么如何去监听服务器资源呢?监听之后又怎么去分析呢,需要我们去思考一下
linux 资源监听
linux 安装插件
用 jmeter 监听 linux 服务器,需要下面几个插件。
访问网址 (官网)[http://jmeter-plugins.org/downloads/all]
下载三个文件。其中 JMeterPlugins-Standard 和 JMeterPlugins-Extras 是客户端的,ServerAgent 是服务端的。
前两个是 jmeter 扩展插件,解压后将 jar 拷贝包到 jmeter 的 lib/ext 目录下,最后一个是服务器监控插件,解压到服务器上
将 ServerAgent-2.2.1.zip 解压后放在需要监控的服务器上,并执行 ./startAgent.sh启动监控
配置 jmeter 监听器
jmeter 下添加监听器,如下图
配置监听 host,运行端口 4444,选择要监听的资源
观察下方的监听图表,此时运行的是 cpu 的监听器
注意:此时监听的是服务器整体的 cpu 使用率,也就是 us+sy,jmeter 由此衍生出了一个隐藏功能
jmeter 监听服务器隐藏功能
双击下图红色圆圈的位置,会出现隐藏的三个按钮
这个隐藏功能可以让我们更灵活的监听资源
idle:cpu 空闲率
system:系统态 cpu 使用率
user:用户态 cpu 使用率
iowait:io 等待率
irq:cpu 硬中断
softirq:cpu 软中断
结合一下 tps 监听器,我们可以观察到一些有趣的事情。
当我们的 tps 急速下降的时候,cpu 使用率也跟着下降因为我们的 jvm 年轻代在 gc 的时候会导致所有线程暂停,cpu 使用率和 tps 自然就跟着掉下来了
如下图所示,当我手动执行 GC 的时候,tps 和 cpu 使用率持续下降并剧烈波动