先放个链接,万一有人关注呢
↓ ↓ ↓ ↓ ↓
在复杂的计算环境中,运维人员需要时刻监控和管理系统中的进程负载。
优势
脚本示例
# 获取指定时间范围内负载前10的进程get_top_processes() {local interval=$1local duration=$2local metric=$3echo "=== ${metric}负载前10的进程(${interval}分钟) ==="echo "时间范围:${duration}分钟"# 获取负载前10的进程case $metric inMEM)top_cmd="ps -e -o pid,%mem,%cpu,cmd --sort=-%mem --no-headers | head -n 10";;CPU)top_cmd="ps -e -o pid,%mem,%cpu,cmd --sort=-%cpu --no-headers | head -n 10";;IO)top_cmd="iotop -b -n1 -d $((interval * 60)) | awk 'NR>7' | head -n 10";;NET)interface=$(echo "${line}" | awk -F':' '{print $1}' | tr -d '[:space:]');;*)echo "无效的指标: $metric"return;;esac# 执行命令并输出结果eval "$top_cmd"echo}# 查询5分钟、10分钟和15分钟内负载前10的进程for duration in 5 10 15; dofor metric in MEM CPU IO NET; doget_top_processes $duration $duration $metricdonedone
结束!如有不足之处,欢迎指正!
我们的组织在这里:


原文作者:运维book思议;如有侵权,请联系管理员删除。