浅谈监听器插件之SSHMon Samples Collector
SSHMon Samples Collector 是 JMeter 的一个强大插件,它允许用户通过 SSH 协议远程监控目标服务器的资源利用率,为性能测试提供实时的系统性能数据。这对于评估应用在高负载条件下的表现以及定位性能瓶颈至关重要。该插件类似于广受欢迎的 PerfMon Metrics Collector,但增加了通过 SSH 连接的能力,使得在防火墙和安全策略严格的环境中也能进行有效的监控。
安装与配置
- 安装插件:
○ 首先确保 JMeter 已正确安装,并具备运行插件的能力。推荐使用 JMeter Plugins Manager 进行插件安装,它提供了便捷的插件搜索、安装和更新功能。
○ 打开 JMeter,选择 “选项” -> “Plugins Manager”,在可搜索框中输入 “SSHMon”,找到对应的插件并安装。 - 配置监听器:
○ 在你的测试计划中,右键点击 “线程组” 或直接在测试计划层级,选择 “添加” -> “监听器” -> “SSHMon Samples Collector”。
使用步骤
- 设置连接参数:
○ Host/主机名:输入目标服务器的 IP 地址或主机名。
○ 端口:默认 SSH 端口为 22,根据实际情况调整。
○ Username/用户名:用于 SSH 认证的用户名。
○ Password密码 / 密钥文件:根据服务器配置,选择合适的认证方式。如果使用密钥认证,需指定私钥文件路径及可能的密钥密码。 - 选择监控指标:
○ 通常可选的指标包括 CPU 使用率、内存使用情况、磁盘 I/O、网络流量等。根据测试需求勾选需要监控的项目。 - 高级设置:
○ 根据需要调整采样间隔、超时设置等高级选项,以优化监控频率和效率。 - 运行测试:
○ 在配置好所有必要的监听器和其他组件后,开始运行你的 JMeter 测试计划。
○ SSHMon Samples Collector 将按照设定的参数开始收集数据,并在测试执行期间实时展示或记录这些数据。
应用实例
我们编写如下脚本
这里的HTTP请求指示模拟测试,所以只需要你觉得哪个可以作为样例测试都行
线程组:循环次数勾选永远,勾选调度器,持续时间假设设置为30。
SSHMon Samples Collector:Label信息设置为内存使用,Host设置为你需要监控的IP地址,Port设置为22,Username/Password设置为你需要登录的服务器的用户名和密码,Command因为我们需要采集内存使用情况,所以命令可以编写为sar -r 1 1 | awk ‘/^Average:/{print $4}’ ,然后执行脚本我们可以看到如下监控内容图标
常见的监控数据命令如下:
● 内存使用率: sar -r 1 1 | awk '/^Average:/{print $4}'或者 sar -r 1 1 | awk ‘/^Average:/{print ($3-$5-$6)/($2+$3)*100}’
● CPU使用率: sar -u 1 1 | awk ‘/^Average:/{print 100-$8}’
● 每秒物理设备I/O传输总量: sar -b 1 1 | awk ‘/^Average:/{print $2}’
● 队列运行长度: sar -q 1 1 | awk ‘/^Average:/{print $2}’
● 进程列表中进程(processes)和线程(threads)的数量: sar -q 1 1 | awk ‘/^Average:/{print $3}’
● 系统交换活动信息(in/out): in使用命令sar -W 1 1 | awk ‘/^Average:/{print $2}’,out使用命令sar -W 1 1 | awk ‘/^Average:/{print $3}’
● 文件句柄(file handle)数: sar -v 1 1 | awk ‘/^Average:/{print $3}’
● 索引节点句柄(inode handle)数: sar -v 1 1 | awk ‘/^Average:/{print $4}’
● 网络监控: sar -n [DEV | EDEV | NFS | NFSD | SOCK | ALL] 1 1 awk ‘/^Average:/{print $索引}’,例如sar -n DEV 1 1 | awk ‘/^Average: lo /{print $3}’
注意事项
● 权限问题:确保用于 SSH 登录的用户具有足够的权限来读取系统性能数据。
● 安全:使用密钥认证而非密码可以增强连接安全性。
● 资源消耗:频繁的监控可能对目标服务器造成额外的负担,合理设置采样间隔以避免干扰正常服务。
总结
SSHMon Samples Collector 是 JMeter 性能测试中不可或缺的工具之一,它通过 SSH 提供了一种灵活且安全的方式,帮助测试工程师深入了解系统在高负载状态下的实际表现。正确配置和利用这一插件,可以显著提升性能测试的准确性和深度,进而为系统优化和扩容决策提供坚实的数据支持。