我经常针对自己的网络应用程序运行工作负载,以尝试查找性能问题
有时我会在不同的持续时间内看到内存泄漏等
所以我创建了一个bash脚本,每分钟拍摄一次javacores kill -3 pid
,持续10分钟,然后按小时执行脚本。
对于运行120小时的工作负载,这将产生1200个javacores。
我想知道,
答案 0 :(得分:0)
看起来我们正在研究两个问题:
性能:对于性能,确定您可以容忍的最长请求,并在其数量为3到5倍时生成javacores。 (对我来说,低于5分钟的任何事情都是很好的调整,很难)
假设您想要的最长要求是3分钟,我会在9分钟到15分钟之间平均生成3个javacores。
我通常建议下面的链接(手动收集),但如果你已经编写了自己的脚本,请使用它
“MustGather:Linux上的性能,挂起或高CPU问题”
http://www.ibm.com/support/docview.wss?rs=180&uid=swg21115785
OutOfMemoryError:查看您的产品是否泄漏,请按照以下网址中的步骤操作,然后手动收集并使用谷歌IBM堆分析器(独立且免费)并查看堆转储以查找潜在的泄漏嫌疑人。
“MustGather:Linux上的本机内存问题”
http://www.ibm.com/support/docview.wss?rs=180&uid=swg21138462
Personnaly,我更喜欢看堆转储内存使用等于XMX或几乎相同。
答案 1 :(得分:0)
由于这是IBM JVM,您可以尝试使用Health Center而不是定期使用javacores:
http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/
这具有分析和内存监视视图,因此应该为您提供所查看的数据,并保存您自己分析javacore文件。