告警知识库:CPU使用率
2023-02-04 10:29:13

报警描述

业务[XX业务],虚拟机[X.X.X.X],位于[位置]CPU使用率报警,使用率为95%。

说明

如果CPU使用率达到100%,则所有与CPU有关的计算操作都会产生阻塞现象,系统卡顿。
当CPU使用率较高时,应当进一步分析操作系统的进程信息,定位哪些进程占用了CPU资源。对于非关键进程,可采取终止相关进程的操作以释放资源;对于关键进程,一方面要对进程的运行效能进行优化(修改配置参数、优化程序代码),另一方面也可以向该服务器追加CPU计算资源。

监控对象

Windows操作系统、Linux操作系统、Unix操作系统

监控方式

Windows

对于Windows操作系统,通过监控代理读取。读取命令为:

sysmonitor.exe -counter cpu

注意:该命令执行后,采集的是最近5秒钟CPU平均使用率。
实现机制:通过调取kernel32.dll的GetSystemTimes函数实现。

GetSystemTimes函数BOOL WINAPI GetSystemTimes(
__out_opt LPFILETIME lpIdleTime, // 空闲时间__out_opt LPFILETIME lpKernelTime, // 内核进程占用时间__out_opt LPFILETIME lpUserTime // 用户进程占用时间);
GetSystemTimes获得系统(自开机以来)处于Kernel状态下面的CPU时间,以及系统处于User状态下的时间,以及Idle的时间.
返回值
如果函数成功,返回值为true。
如果函数失败,返回值为false。
调用GetLastError函数可获得更多的错误信息。

Linux

对于Linux操作系统,通过监控代理读取。读取命令为:

./sysmonitor.bin -counter cpu

注意:该命令执行后,采集的是最近5秒钟CPU平均使用率。
实现机制:通过读取/proc/stat文件内容实现。

proc/stat输出示例如下:

cpu  284406 5124 265469 127366482 1535 137210 17435 0 0 0cpu0 95163 762 58533 31818184 273 28239 2822 0 0 0cpu1 56060 1575 63527 31872003 354 33676 2686 0 0 0cpu2 80310 1909 78641 31816154 328 41024 8639 0 0 0cpu3 52872 877 64766 31860140 579 34270 3286 0 0 0intr 549507255 0 9 0 0 414 0 0 0 0 0 0 31 15 0 0 0 0 0 0 0 0 0 0 0 0 16 0 241447 230309 284184 238755 0 104037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ctxt 1059578036btime 1637232875processes 278082procs_running 1procs_blocked 0softirq 71843425 0 17031560 3 1055041 103904 0 2167 27299326 3 26351421

UNIX

对于Unix操作系统:
AIX通过定时任务执行脚本读取。读取命令为:

sar -u 1 5

sar命令是sysstat工具包中的一个命令行工具,用于打印CPU、内存等资源信息。该工具支持Linux、Unix操作系统。由于大多数已知AIX上均安装了sysstat包,因此这里采用sar命令读取CPU使用率。

“sar -u 1 5”这条命令的含义就是,每隔1秒钟打印一次CPU资源信息,打印5次。其输出示例如下:

Linux 4.18.0-240.22.1.el8_3.x86_64 (zgyw)       11/22/2021      _x86_64_        (4 CPU)02:13:47 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle02:13:48 PM     all      0.25      0.00      0.50      0.00      0.00     99.2502:13:49 PM     all      0.00      0.00      0.00      0.00      0.00    100.0002:13:50 PM     all      0.00      0.00      0.50      0.00      0.00     99.5002:13:51 PM     all      0.00      0.00      0.00      0.00      0.00    100.0002:13:52 PM     all      0.00      0.00      0.75      0.00      0.00     99.25Average:        all      0.05      0.00      0.35      0.00      0.00     99.60

规则

默认规则为:

[0<=使用率<90] 正常
[90<=使用率<95] 提醒
[95<=] 报警

可通过报警策略进行配置。


嫌麻烦不想填写表单?点击立即扫码联系销售人员。
感兴趣的产品:
*试用单位:
*所在省份:
*单位地址:
*联系人:
*联系电话:
*您主要关注哪些方面:
您从何处了解到诸葛运帷:

免费试用 ×
微信扫码,立即联系销售经理,或电话、短信致电均可。或返回填写表单
刘经理:13811576433
赵经理:18611012818
立即咨询 ×
微信扫码,立即联系销售经理进行咨询,或电话、短信致电均可。
刘经理:13811576433
赵经理:18611012818