【发布时间】:2019-06-04 11:46:47
【问题描述】:
我们的一个 Kafka 代理在 8 核机器上的平均负载非常高(平均约为 8)。虽然这应该没问题,但我们的集群似乎仍然面临问题,并且生产者未能以通常的速度刷新消息。
经过进一步调查,我发现我的 java 进程等待 IO 的时间太长了,几乎 99.99% 的时间都在等待,到目前为止,我认为这是一个问题。
请注意,即使负载相对较低(大约 100-150 Kbps)也会发生这种情况,我已经看到即使在集群中输入 2 Mbps 的数据时它也能完美运行。
我不确定这个问题是否是因为 Kafka,我假设这不是因为所有其他代理在此期间都运行良好,并且我们的数据在 5 个代理之间完美分配。
请帮助我找出问题的根本原因。我应该去哪里寻找问题?有没有其他工具可以帮助我调试这个问题?
我们在 m5.2x 大型机器上使用 1 TB 安装的 EBS 卷。
请随时提出任何问题。
【问题讨论】:
-
你检查GC日志了吗?
-
我现在没有捕获 GC 日志,但是我的 JMX 日志表明 GC 时间确实增加了。通常它会保持在 1% 以下,但是当这个 IO 问题发生时,GC 时间会增加 15-20% 之多。我不明白GC和IO之间的关系。你能帮我理解这两者是如何相关的吗?
-
检查 GC 是否导致世界停止 stackoverflow.com/questions/16695874/…?
-
我将立即开始捕获 GC 日志并通知您?或者有没有办法在没有这些日志的情况下知道它?
-
您必须在我有限的知识范围内检查GC日志
标签: amazon-web-services server io apache-kafka disk-io