p90堆使用率为60%,如果我将消息消耗加倍会发生什么?

问题描述 投票:0回答:1

我有一个系统,每秒消耗 x 条消息,这导致 p50(第 50 个百分位)堆使用率为 25%,p90(第 90 个百分位)堆使用率为 60%。

现在,我们的目标是将消息的消耗率提高一倍,达到每秒 2 倍。我想了解这对堆使用率的影响(考虑到堆使用率的百分比)。

基本上,我担心的是 90% 左右的两种类型的消息,它们会一起被消费。由于在这两种情况下,我们都占用了堆的 60%,这会导致超出内存限制异常吗?

任何指点表示赞赏。


方法一:逐步提高消费率,同时进行监控。

  • 问题:我们现在没有收到 2x 消息。我们稍后会得到这些,所以我们不知道系统是否在 2 倍消耗率下正常工作。
java heap-memory performance-estimation
1个回答
0
投票

稳定p90:

如果您的内存分配系统高效并且可以适应增加的工作负载,则 p90 堆使用率可能会保持在 60% 左右。如果系统根据需求逐渐分配内存,或者自动垃圾收集有效地处理内存释放,则可能会发生这种情况。

增加了p90,但仍然可以管理:

消息消耗加倍可能会增加 p90 堆的使用率,甚至可能增加 50-100%。然而,只要堆大小足够并且没有达到其满容量,系统仍然可以充分运行。

堆耗尽和服务中断:

如果系统无法处理因消息消耗加倍而增加的内存需求,p90 可能会显着上升,接近或超过可用堆大小。这可能会导致堆耗尽,从而导致服务中断、崩溃或性能下降。

© www.soinside.com 2019 - 2024. All rights reserved.