Cloud 为什么风暴的表现在几分钟后变得非常缓慢?

Cloud 为什么风暴的表现在几分钟后变得非常缓慢?,cloud,bigdata,apache-storm,Cloud,Bigdata,Apache Storm,我正在运行吞吐量拓扑以测试性能。 在前两分钟内,我获得了平均450k每秒的良好性能 10分钟后,平均速度下降到每秒100k 原因可能是什么 吞吐量测试: 可能有几个原因: 1.检查是否满足堆要求,并将其提供给工作JVM。 通过LinuxTop命令/GC日志,您可以验证这一点。 如果您想增加它,请使用XMX参数。 参数: -XmsAg -XmxAg -XX:+PrintGCDetails -XX:-PrintGCApplicationStoppedTime -XX:+PrintGCTimeStam

我正在运行吞吐量拓扑以测试性能。 在前两分钟内,我获得了平均450k每秒的良好性能 10分钟后,平均速度下降到每秒100k

原因可能是什么

吞吐量测试:
可能有几个原因: 1.检查是否满足堆要求,并将其提供给工作JVM。 通过LinuxTop命令/GC日志,您可以验证这一点。 如果您想增加它,请使用XMX参数。 参数:

-XmsAg -XmxAg -XX:+PrintGCDetails -XX:-PrintGCApplicationStoppedTime -XX:+PrintGCTimeStamps -Xloggc:/tmp/gc.log
  • 巨大的主要GC循环 主要的GC循环会花费大量时间,并导致大型堆的应用程序暂停。 请阅读此博客以优化相同的内容:

  • 一个僵尸数组列表/散列图阻塞了你的代码——如果无法通过代码审查来解决这个问题,请使用像jVisualVM或Yourkit这样的探查器来指出这个问题

  • 检查Storm UI,找出不合格螺栓,并相应调整。 此外,更喜欢CMS GC,并根据您的要求调整参数。 G1垃圾收集器将以最短的应用程序停止时间为您提供快速的收集周期,但与CMS相比,它将显示一个膨胀的进程内存。
    首选G1,以防您不介意更大的进程大小(与堆大小相比要大得多)。

    这对您的探查器来说确实是个问题。为什么将ackers设置为0?在创建大量随机字符串后是否会出现长时间/频繁的GC暂停?请阅读@DonBranson的评论repeatedly@DonBranson是对的,,我通过增加
    worker.childopts
    中的
    -Xmx
    值来解决这个问题。