我是性能测试新手。从谷歌了解到,JMeter可用于为我的春季启动应用程序执行加载和浸泡测试。
我已准备好JMeter脚本,我可以按计划触发测试。但我不确定以下事项:
如何在测试执行期间使用CPU和内存使用信息在jre中生成文件(javacore?)?
可以采用哪些工具来生成CPU和内存使用图表?
感谢。
答案 0 :(得分:1)
您可以使用JvisualVM等JDK工具。 它可以生成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 示例。
...监控单个远程服务器(即使没有 JMX 连接)
如果您不想设置完整的监控解决方案,Java melody 在服务器上更容易install。
要使用 jmx 监视桌面或远程服务器上的单个 Java 应用程序,JvisualVM 在 answer 中解释的 Hash Jang 是一个很好的解决方案。