Redis info cpu 几个字段意义与参考价值

Redis 运维中有个命令如下:

info CPU

used_cpu_sys:799.66

used_cpu_user:662.00

used_cpu_sys_children:4.72

used_cpu_user_children:39.98

想请问一下,这个几个字段是什么意思,他有什么参加价值,或者说他的标准值是多少?

我看书《Redis运维与开发》中写道:Redis主进程在内核态或用户态所占用的CPU时钟总和,请问这个时钟总和值有什么用呢?我可以通过他得知什么信息呢?

阅读 8.8k
1 个回答

1:先补充下后两个数值的含义:

  • used_cpu_sys_children: System CPU consumed by the background processes //Redis后台进程内核态消耗的CPU,比如bgsavefork一个子进程在后台去做。
  • used_cpu_user_children: User CPU consumed by the background processes //Redis后台进程用户态消耗的CPU。

2:有关内核态和用户态,是CPU在执行程序不同阶段所处的状态,通常来说有三种状态:

  • Idle, 空闲,什么也不做.
  • Running a user space program,运行在用户态,例如shell程序,或者chrome等用户态程序.
  • Running the kernel, 运行在内核态,管理中断或者资源,执行系统调用,例如用户态程序malloc内存,fork子进程等.

通过top命令可以查看到CPU的信息:

%Cpu(s): 24.8 us,  0.5 sy,  0.0 ni, 73.6 id,  0.4 wa,  0.0 hi,  0.2 si,  0.0 st

关注的主要信息就是这三种us 用户态,sy 内核态,id 空闲.

3:对于Redis来说的参考作用,我觉得主要是看目前的负载情况:

  • 启动Redis,没有插入数据
    图片描述
  • 插入1G数据

图片描述

可以发现明显提高了,平时如果Redis出现问题,扫一眼数据就可以知道Redis的负载情况,然后作为参考信息排查问题。现在如果使用了万兆网卡,带宽基本上不是瓶颈,性能瓶颈就会在CPU上,大量的业务计算,求交集,求并,排序等等容易将CPU打满,这时候特点就是用户态占比CPU较大。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进