站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: Shell脚本实现Linux系统和进程资源监控
搜索:
您的位置: 主页 > 教程 > 网页编程 > JavaScript > » 正文

Shell脚本实现Linux系统和进程资源监控(2)

来源: 易采站长站

有时有可能进程没有启动,下面的功能是检查进程 ID 是否存在,如果此进程没有运行输出:
代码如下:
    The process does not exist.
    # 检查进程是否存在
    if [ "-$PID" == "-" ]
    then
    {
        echo "The process does not exist."
    }
    fi

检测进程 CPU 利用率

在对应用服务进行维护时,我们经常遇到由于 CPU 过高导致业务阻塞,造成业务中断的情况。CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对业务进程 CPU 进行时时监控,可以在 CPU 利用率异常时及时通知维护人员,便于维护人员及时分析,定位,以及避免业务中断等。下面的函数可获得指定进程 ID 的进程 CPU 利用率。它有一个参数为进程 ID,它首先使用 ps 查找进程信息,同时通过 grep -v 过滤掉 %CPU 行,最后通过 awk 查找 CPU 利用百分比的整数部分(如果系统中有多个 CPU,CPU 利用率可以超过 100%)。

清单 2. 对业务进程 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%(可以根据实际情况进行调整),则输出告警,否则输出正常信息。

清单 3. 判断 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)源程序(假设上面已经查询出 CFTestApp 的进程 ID 为 11426)
代码如下:
 CheckCpu 11426

2)结果输出
代码如下:
    The usage of cpu is 75
    The usage of cpu is normal
    [dyu@xilinuxbldsrv shell]$

3)结果分析

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

检测进程内存使用量

在对应用服务进行维护时,也经常遇到由于内存使用过大导致进程崩溃,造成业务中断的情况(例如 32 位程序可寻址的最大内存空间为 4G,如果超出将申请内存失败,同时物理内存也是有限的)。内存使用过高可能由于内存泄露,消息堆积等情况,通过脚本对业务进程内存使用量进行时时监控,可以在内存使用量异常时及时发送告警(例如通过短信),便于维护人员及时处理。下面的函数可获得指定进程 ID 的进程内存使用情况。它有一个参数为进程 ID,它首先使用 ps 查找进程信息,同时通过 grep -v 过滤掉 VSZ 行 , 然后通过除 1000 取以兆为单位的内存使用量。

Tags:
最新图文资讯
1 2 3 4 5 6
相关文章列表:
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -