Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在工作负载期间捕获JavaCore的频率_Java_Performance_Jvm - Fatal编程技术网

在工作负载期间捕获JavaCore的频率

在工作负载期间捕获JavaCore的频率,java,performance,jvm,Java,Performance,Jvm,我经常对自己的web应用程序运行工作负载,以尝试查找性能问题。 有时我会在不同的持续时间内看到内存泄漏等情况。 所以我创建了一个bash脚本来获取javacores,kill-3PID,每分钟执行一次,持续10分钟,脚本在一小时内执行。 对于运行120小时的工作负载,这将产生1200个JavaCore 我在想 这是不是太过分了?我想要系统的连续视图(javacore每5分钟一次,持续120小时),但不想影响性能 根据基于servlet的应用程序自动捕获JavaCore的合理频率是多少 看起来我

我经常对自己的web应用程序运行工作负载,以尝试查找性能问题。
有时我会在不同的持续时间内看到内存泄漏等情况。
所以我创建了一个bash脚本来获取javacores,
kill-3PID
,每分钟执行一次,持续10分钟,脚本在一小时内执行。
对于运行120小时的工作负载,这将产生1200个JavaCore

我在想

  • 这是不是太过分了?我想要系统的连续视图(javacore每5分钟一次,持续120小时),但不想影响性能
  • 根据基于servlet的应用程序自动捕获JavaCore的合理频率是多少

看起来我们正在研究两个问题:

  • 演出
  • OutOfMemoryError
  • 性能:为了提高性能,请确定您可以容忍的最长请求,并在该请求是该请求的3到5倍时生成JavaCore。(对我来说,任何低于5分钟的时间都是微调,可能很困难)

    假设您想要的最长请求是3分钟,我将在9分钟到15分钟之间平均生成3个JavaCore。 我通常建议使用下面的链接(手动收集),但如果您已经编写了自己的脚本,请使用它
    “MustGather:Linux上的性能、挂起或高CPU问题”

    OutOfMemoryError:查看您的产品是否泄漏,按照下面URL中的步骤进行操作,然后转到手动收集和google IBM heap analyzer(单机版和免费版),并查看堆转储以查找潜在泄漏嫌疑。
    “MustGather:Linux上的本机内存问题”


    就我个人而言,我更喜欢看堆转储内存使用是否等于或接近XMX。

    由于这是一个IBM JVM,您可以尝试使用Health Center,而不是定期使用javacores:


    它有评测和内存监控视图,因此应该为您提供正在查看的数据,并保存您自己分析javacore文件的数据

    您从java内核中提取了哪些信息?通过分析线程,了解应用程序在持续负载下的行为。也许可以识别内存泄漏或其他问题。