限制进程使用虚拟内存 linux_Linux实用监控脚本——使用 Shell检测进程 CPU 利用率...

检测进程 CPU 利用率

在对应用服务进行维护时,我们经常遇到由于 CPU 过高导致业务阻塞,造成业务中断的情况。CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对业务进程 CPU 进行时时监控,可以在 CPU 利用率异常时及时通知维护人员,便于维护人员及时分析,定位,以及避免业务中断。

f51c808995f53d1441f69b45619fcd97.png

下面的函数可获得指定进程 ID 的进程 CPU 利用率。它有一个参数为进程 ID,它首先使用 ps 查找进程信息,同时通过「grep -v」过滤掉「%CPU」行,最后通过 awk 查找 CPU 利用百分比的整数部分(如果系统中有多个 CPU,CPU 利用率可以超过 100%)。

对业务进程 CPU 进行实时监控

function GetCpu  {  CpuValue=`ps -p $1 -o pcpu |grep -v CPU | awk '{print $1}' | awk - F. '{print $1}'`  echo $CpuValue  }

下面的功能是通过上面的函数 GetCpu 获得此进程的 CPU 利用率,然后通过条件语句判断 CPU 利用率是否超过限制,如果超过 80%(可以根据实际情况进行调整),则输出告警,否则输出正常信息。

判断 CPU 利用率是否超过限制

function CheckCpu  {  PID=$1  cpu=`GetCpu $PID`  if [ $cpu -gt 80 ]  then  {  echo “The usage of cpu is larger than 80%” }  else  {  echo “The usage of cpu is normal” }  fi  }

示例演示:

1)源程序(假设上面已经查询出 TestApp 的进程 ID 为 11426)

CheckCpu 11426

2)结果输出

The usage of cpu is 75 The usage of cpu is normal [dyu@xilinuxbldsrv shell]$

3)结果分析

从上面的输出可见:TestApp 程序当前的 CPU 使用为 75%,是正常的,没有超过 80% 的告警限制。

作为 IT 运维工程师,对单个进程CPU利用率设置监控告警可以在一定程度上降低系统异常,保障业务稳定的运行。试想,如果拥有一个能够监控全局,实现业务告警风险提醒的运维协作工具呢?定能极大提升工作效率,加强团队运维保障能力!

b8c0e4ca14cdcc194149cd1f3f697c87.png

王教授」帮助您更好地了解您在公有云上的所有资产状况(资产统计、健康状况诊断、监控数据汇聚、费用优化建议等),提前发现系统问题,减小了运维事故的发生。

用了王教授!晚上不“肝”白天干!

神仙运维生活,一招即获~欢迎点击文末王教授二维码查看详情!

(也可访问工具地址:https://prof.wang)


网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?

加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....

私信小编“联盟”,即可加入我们~

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页