redis默認是單線程運行的,為了充分利用機器的cpu,正常情況下一台服務器上會裝多個實例。如果通過top命令監控機器的cpu的話,監控值很籠統,不能精確到單redis實例的cpu使用率監控。而且centos 7.0通過top監控整體cpu的使用率並不准確。所以需要使用其它方式監控cpu。
進入redis實例
127.0.0.1:36379> info cpu
# CPU
used_cpu_sys:2187.88
used_cpu_user:1842.28
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
其中:
used_cpu_user:redis進程指令在用戶態所消耗的cpu時間,該值為累計值(秒)
used_cpu_sys:redis進程指令在核心態所消耗的cpu時間,該值為累計值(秒)
used_cpu_sys_children:redis后台進程指令在用戶態所消耗的cpu時間,該值為累計值(秒)
used_cpu_sys_children:redis后台進程指令在核心態所消耗的cpu時間,該值為累計值(秒)
redis進程單cpu的消耗率可以通過如下公式計算:
((used_cpu_sys_now-used_cpu_sys_before)/(now-before))*100
可以通過下面的方式計算告警值:
(used_cpu_sys_now-used_cpu_sys_before)/(now-before)<0.9
其中
used_cpu_sys_now:now時間點的used_cpu_sys值
used_cpu_sys_before:before時間點的used_cpu_sys值
