如何在加载/浸泡测试后生成CPU和内存使用情况图?

时间:2018-01-02 02:43:17

标签: java performance

我是性能测试新手。从谷歌了解到,JMeter可用于为我的春季启动应用程序执行加载和浸泡测试。

我已准备好JMeter脚本,我可以按计划触发测试。但我不确定以下事项:

  1. 如何在测试执行期间使用CPU和内存使用信息在jre中生成文件(javacore?)?

  2. 可以采用哪些工具来生成CPU和内存使用图表?

  3. 感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用JvisualVM等JDK工具。 enter image description here 它可以生成cpu和内存情况的摘要可视化报告

要获得更高性能的监视器和瓶颈位置,您可以品尝SJK 例如:

> java -jar sjk.jar ttop -p 6344 -n 20 -o CPU
    2013-09-09T11:32:45.426+0300 Process summary
  process cpu=31.08%
  application cpu=28.90% (user=6.40% sys=22.49%)
  other: cpu=2.19%
  heap allocation rate 5260kb/s
[000001] user= 3.12% sys=11.40% alloc=  762kb/s - main
[092018] user= 0.94% sys= 0.47% alloc=  335kb/s - RMI TCP Connection(16)-10.139.211.172
[092016] user= 0.31% sys= 1.56% alloc= 1927kb/s - SVN-WJGGZ
[092007] user= 0.78% sys= 8.75% alloc=  860kb/s - Worker-4863
[092012] user= 0.31% sys= 0.31% alloc=  429kb/s - Worker-4864
[091966] user= 0.16% sys= 0.00% alloc=   90kb/s - Worker-4859
[092022] user= 0.16% sys= 0.00% alloc=  6871b/s - JMX server connection timeout 92022
[000002] user= 0.00% sys= 0.00% alloc=     0b/s - Reference Handler
[000003] user= 0.00% sys= 0.00% alloc=     0b/s - Finalizer
[000004] user= 0.00% sys= 0.00% alloc=     0b/s - Signal Dispatcher
[000005] user= 0.00% sys= 0.00% alloc=     0b/s - Attach Listener
[000009] user= 0.00% sys= 0.00% alloc=     0b/s - Framework Active Thread
[000012] user= 0.00% sys= 0.00% alloc=     0b/s - Framework Event Dispatcher
[000014] user= 0.00% sys= 0.00% alloc=     0b/s - Start Level Event Dispatcher
[000015] user= 0.00% sys= 0.00% alloc=     0b/s - Bundle File Closer
[000018] user= 0.00% sys= 0.00% alloc=     0b/s - [Timer] - Main Queue Handler
[000019] user= 0.00% sys= 0.00% alloc=     0b/s - Worker-JM
[000029] user= 0.00% sys= 0.00% alloc=     0b/s - [ThreadPool Manager] - Idle Thread
[000030] user= 0.00% sys= 0.00% alloc=     0b/s - Java indexing
[000033] user= 0.00% sys= 0.00% alloc=     0b/s - com.google.inject.internal.util.$Finalizer

答案 1 :(得分:0)

您的监控解决方案应监控技术行为以及应用程序可用性(响应时间、错误率......)。一个好的监控解决方案可以收集您所有的 Java 实例并创建集群的聚合图...和警报。

现在 Prometheus+Grafana 是两种非常常见的开源工具,但还有其他工具(DatadogHQ、Dynatrace)。

使用 Prometheus 时,您可以使用 jmx-exporter 收集 Java (mbeans) 指标。参见 this blog 示例。

Grafana Screenshot

或者,一个独立的解决方案

...监控单个远程服务器(即使没有 JMX 连接)

如果您不想设置完整的监控解决方案,Java melody 在服务器上更容易install

javamelody Screenshot

或者,对于桌面用户

要使用 jmx 监视桌面或远程服务器上的单个 Java 应用程序,JvisualVManswer 中解释的 Hash Jang 是一个很好的解决方案。 JvisualVM Screenshot