计算 Redis 中的处理器利用率百分比

Gau*_*tri 3 redis

在 Redis 上使用INFO CPU命令,我得到以下值(以及其他值):

使用的CPU系统:688.80

使用的CPU用户:622.75

根据我的理解,该值表示自 Redis 实例启动以来累积的 CPU 时间(以秒为单位),由 getrusage() 调用 ( source) 报告。

我需要做的是根据这些值计算 CPU 利用率百分比。我广泛寻找一种方法来做到这一点,但不幸的是找不到方法。

所以我的问题是:

  1. 我们真的可以根据这两个值计算 CPU 利用率百分比吗?如果答案是肯定的,那么我将不胜感激在这个方向上的一些指示。
  2. 我们需要一些额外的数据点来进行此计算吗?如果答案是肯定的,如果有人能告诉我这些数据点是什么,我将不胜感激。

PS如果这个问题属于服务器故障,请告诉我,我会将其发布在那里(我不能100%确定它是否属于这里或那里)。

Kir*_*irk 6

您需要读取该值两次,计算增量,然后除以两次读取之间经过的时间。这将为您提供该持续时间内的 cpu 使用率(以百分比为单位)。

  • 我不在可以测试它的地方,但我想知道您是否使用了命令 MULTI 并每次都使用 multi 执行了 INFO CPU 和 TIME 命令。然后,您将在每个命令的微秒内获得 CPU 信息和服务器上的确切时间。然后从那里计算。这样,理论上您可以完全避免网络延迟。我唯一犹豫的是 MULTI 通常与 EXEC 结合使用,我记得这主要用于对象上的工作,但它可能会起作用。 (2认同)