当前位置: 首页 > 科技观察

Linux实战监控脚本——利用Shell检测进程CPU利用率

时间:2023-03-11 21:37:43 科技观察

在维护应用服务的时候,我们经常会遇到因为CPU高导致业务中断,导致业务中断的情况。如果CPU过高,可能是因为业务过载或死循环等异常情况。脚本会时不时地监控业务流程的CPU。当CPU使用率异常时,可以及时通知维护人员,便于维护人员及时分析、定位、规避业务操作。中断。下面的函数获取给定进程ID的进程CPU利用率。它有个进程ID的参数,它先用ps找到进程信息,同时通过grep-v过滤掉“%CPU”这一行,最后找到CPU利用率的整数部分通过awk(如果系统中有多个CPU,CPU利用率可以超过100%)。实时监控业务进程CPU函数GetCpu{CpuValue=`ps-p$1-opcpu|grep-vCPU|awk'{print$1}'|awk-F.'{print$1}'`echo$CpuValue}如下函数是通过上面的函数GetCpu获取本进程的CPU使用率,然后通过条件语句判断CPU使用率是否超过限制,如果超过80%(可以根据实际情况调整),则输出报警,否则输出正常信息。判断CPU使用率是否超限functionCheckCpu{PID=$1cpu=`GetCpu$PID`if[$cpu-gt80]then{echo"Theusageofcpuislargerthan80%"}else{echo"Theusageofcpuisnormal"}fi}实例演示:(一)sourceProgram(假设上面已经查询到TestApp的进程ID为11426)CheckCpu11426(2)结果输出Theusageofcpuis75Theusageofcpuisnormal[dyu@xilinuxbldsrvshell]$(3)结果分析从上面输出可以看出:TestApp程序是75%,这是正常的,没有超过80%的警报限制。作为IT运维工程师,对单个进程的CPU使用率设置监控告警,可以在一定程度上减少系统异常,保证业务稳定运行。试想,如果你有一个运维协同工具,可以监控全局,实现业务告警和风险提醒?必将提升工作效率,加强团队的运维支撑能力!