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

pcww981p  于 7个月前  发布在  Java
关注(0)|答案(1)|浏览(65)

我有一个系统,它每秒消耗x条消息,这导致p50(第50百分位数)堆使用率为25%,p90(第90百分位数)堆使用率为60%。
现在,我们的目标是将消息的消耗率加倍到每秒2倍。我想了解这对堆使用的影响,给定百分堆使用率。
基本上,我担心的是两种大约在第90百分位的消息,它们被一起消耗。因为在这两种情况下,我们都占用了60%的堆,这会导致内存限制超出异常吗?
任何提示赞赏。
方法一:沿着监测,逐步提高消费率。

  • 发行日期:我们现在没有收到2x的消息。我们会在以后收到这些消息,所以我们不知道系统是否在2x的消耗率下工作正常。
qoefvg9y

qoefvg9y1#

稳定p90:

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

p90增加,但仍可控:

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

堆耗尽和服务中断:

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

相关问题