0

我发现在我们的产品环境中流程减少很大,消息并没有减少。

仅供参考,5分钟后减少10831243888178和10838818431635。message_queue_len 是 1012 ,然后是 1014 根据减少。

我认为messages返回的process_info(Pid)应该在 5 分钟内消耗掉,但事实并非如此。我可以说该进程被某些消息阻止了吗?

我从网上读到,一次缩减可以看作是一次函数调用,但我并不完全理解。如果有人能告诉我更多关于“减少”的信息,我将不胜感激。

4

1 回答 1

3

减少是一种衡量流程完成工作的方法。

每个计划的进程在抢占之前都会减少一些花费,换句话说,在它必须让其他进程执行之前。调用一个函数将花费 1 减少,这似乎是正确的,但它不是唯一花费它们的东西,很多减少也会在这个函数调用中消失。

您给出的数字似乎是一个进程所花费的累计减少。一个很大的数字本身并不意味着什么。然而,大幅增加意味着该过程正在做一些艰苦的工作。如果这个主力没有消耗消息队列,它很有可能被困在一个很长的甚至是无休止的计算中。

process_info(Pid, current_function)您可以尝试使用或进一步检查它process_info(Pid, current_stacktrace)

于 2013-08-17T16:04:18.227 回答