我的任务是在几台 Tomcat 测试服务器上测试 ProxySQL,并将其性能和资源利用率与当前的 Apache DBCP 连接池进行比较。我制定了一个粗略的负载测试计划,但我几乎没有监控和收集/比较系统级性能指标(CPU、内存、磁盘、网络等)的经验。
我的负载测试将涉及一个 Ansible 剧本,该剧本执行各种准备任务,触发负载测试脚本,并最终自行清理。我想添加“分别在负载测试之前和之后启动和停止收集性能指标”,但我不知道应该研究哪些工具。
在我看来,最佳解决方案应该是这样的:
- 在 Tomcat 框的后台本地运行
- 简单配置
- 可以根据需要启动和停止监控会话
- 高分辨率(如果需要,每秒收集一次或更频繁地收集指标)
- 监控运行的结果很容易被某种图形工具读取,以便比较不同的负载测试运行。
鉴于这些规格,我正在寻找什么样的选项,包括监控任务本身以及用于检查它们的图形工具?
答案1
- 一些基本信息可以从操作系统MXBean使用JConsole或同等版本,你无需安装任何东西
- 最轻量级的工具将是特区
- 你可以看看西加尔其中有Java 接口因此你可以创建一个 Web 应用来收集和显示你选择的指标。它还用于PerfMon 插件为了Apache JMeter负载测试工具
- 如果你更喜欢现成的解决方案,请查看Monitorix
答案2
我不知道它是否符合所有条件,但看看JMeter。
答案3
如果你有能够解析输出的东西,下面的方法可以很好地工作并且非常轻量:
head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname; tail -v -n 16 /proc/net/dev
你只需要每秒执行一次