老李分享:shell 监控cpu,memory,load average

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。  Poptest在培训性能的时候,会教学员如何用其他辅助的技术手段来完成性能监控,快速的定位性能瓶颈。下面就是利用shell完成监控目标:

shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员。

原理:

1.获取cpu,memory,load average的数值

2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2)

3.如数值超过范围,发送电邮通知管理员。发送有时间间隔,每小时只会发送一次。

4.将数值写入log。

5.设置crontab 每30秒运行一次。

ServerMonitor.sh

#!/bin/bash

# 系统监控,记录cpu、memory、load average,当超过规定数值时发电邮通知管理员

# *** config start ***

# 当前目录路径

ROOT=$(cd "$(dirname "$0")"; pwd)

# 当前服务器名

HOST=$(hostname)

# log 文件路径

CPU_LOG="${ROOT}/logs/cpu.log"

MEM_LOG="${ROOT}/logs/mem.log"

LOAD_LOG="${ROOT}/logs/load.log"

# 通知电邮列表

NOTICE_EMAIL='admin@admin.com'

# cpu,memory,load average 记录上一次发送通知电邮时间

CPU_REMARK='/tmp/servermonitor_cpu.remark'

MEM_REMARK='/tmp/servermonitor_mem.remark'

LOAD_REMARK='/tmp/servermonitor_loadaverage.remark'

# 发通知电邮间隔时间

REMARK_EXPIRE=3600

NOW=$(date +%s)

# *** config end ***

# *** function start ***

# 获取CPU占用

function GetCpu() {

cpufree=$(vmstat 1 5 |sed -n '3,$p' |awk '{x = x + $15} END {print x/5}' |awk -F. '{print $1}')

cpuused=$((100 - $cpufree))

echo $cpuused

local remark

remark=$(GetRemark ${CPU_REMARK})

# 检查CPU占用是否超过90%

if [ "$remark" = "" ] && [ "$cpuused" -gt 90 ]; then

echo "Subject: ${HOST} CPU uses more than 90% $(date +%Y-%m-%d' '%H:%M:%S)" | sendmail ${NOTICE_EMAIL}

echo "$(date +%s)" > "$CPU_REMARK"

fi

}

转载于:https://blog.51cto.com/10988776/1723280

老李分享:shell 监控cpu,memory,load average 1相关推荐

  1. 利用shell监控cpu、磁盘、内存使用率

    利用shell监控cpu.磁盘.内存使用率,达到警报阈值发邮件进行通知 并配合任务计划,即可及时获取报警信息 #!/bin/bash ################################# ...

  2. CPU核数和load average的关系

    作者新建了QQ群:460430320,供大家交流测试心得(培训机构勿进).另外,还会不定期上传测试资料,也欢迎您共享测试资料. 在前面的文章<Linux系统监控--top命令>中我简单提到 ...

  3. 压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate

    上篇讲如何用LoadRunner监控Linux的性能指标 ,但是关于CPU的几个指标没有搞清楚,下面就详细说说. CPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有 ...

  4. 衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate

    CPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有说法是80%或者更高).除了这个指标外,还要结合Load Average和Context Switch Rate来 ...

  5. 压力测试衡量CPU的三个指标CPU Utilization、Load Average和ContextSwitch Rate

    压力测试衡量CPU的三个指标:CPU Utilization.Load Average和ContextSwitch Rate 上篇讲如何用LoadRunner监控Linux的性能指标,但是关于CPU的 ...

  6. load average多少是正常_对 cpu 与 load 的理解及线上问题处理思路解读

    (给ImportNew加星标,提高Java技能) 转自:五月的仓颉 前言 2019双11还有几天就要到来了,大家也都知道服务器在大促期间由于流量的增加势必导致机器的cpu与load变高.因此趁着这个时 ...

  7. load average多少是正常_从阿里大促中,我理出的CPU与Load异常排查思路

    前言 大家都知道服务器在大促期间由于流量的增加势必导致机器的cpu与load变高,本文将与大家一起巩固cpu和load的概念,为今年各种大促做准备的同时也是增加自己的技能储备. 不过cpu和load这 ...

  8. linux cpu load 值,理解Linux系统中的load average(图文版)转

    一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...

  9. linux 循环 cpu使用率脚本,监控CPU使用率的三种方法(shell脚本)

    监控CPU使用率的三种方法(shell脚本),供大家学习参考. 方法一: 复制代码 代码如下: #!/bin/sh #监控CPU使用率 #Written by Chameleon #Http://ch ...

最新文章

  1. 基于 OpenCV 的网络实时视频流传输
  2. Windows 10 powershell 中文乱码解决方案
  3. 用g.raphael.js高速绘制饼图、柱状图、点状图、折线图(下)
  4. VTK:图片之CenterAnImage
  5. Linux shell 进制转换
  6. Page Cache的落地问题
  7. [Leetcode][第108题][JAVA][将有序数组转换为二叉搜索树][二分法][递归]
  8. 异构计算黄金时代下,超强异构计算服务器FP5468G2将会带来哪些变革?
  9. CUDA Texture Memory
  10. 【XCTF 攻防世界 web 练习详解系列(二)】【get_post的两种解法】
  11. asp空间和php空间_免费ASP空间与免费PHP空间
  12. 全局loading如何控制
  13. 《Python密码学编程》——2.6 本书的文本换行
  14. RTMP协议及H264文件格式分析
  15. 阿诺德图像加密c语言,三维arnold变换图像加密算法
  16. chrome刷新缓存
  17. Cocos Creator下JavaScript模拟砸金蛋3d旋转效果,附代码
  18. 小学计算机二课堂活动总结,信息技术第二课堂活动总结
  19. 电商路演投资计划融资报告PPT模板
  20. CentOS8-1905 本地dnf源挂载

热门文章

  1. 关于Opengl中将24位BMP图片加入�一个alpha通道并实现透明的问题
  2. 复旦大学跑步爱好者协会章程(终稿)
  3. python3多线程第三方库_Python之多线程爬虫抓取网页图片的示例代码
  4. C语言经典例74-连接两个链表
  5. 【Google Play】声明广告权限 ( you must declare the AD_ID Permission when your app targets Android 13 )
  6. 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )
  7. 【数据挖掘】基于层次的聚类方法 ( 聚合层次聚类 | 划分层次聚类 | 族间距离 | 最小距离 | 最大距离 | 中心距离 | 平均距离 | 基于层次聚类步骤 | 族半径 )
  8. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )
  9. 【译】最大限度地降低多线程 C# 代码的复杂性
  10. JavaWeb基础之JdbcUtils工具类2.0