Linux 主机磁盘繁忙度监控实战shell脚本
阅读原文时间:2023年09月01日阅读:1

Linux 磁盘繁忙度是指磁盘的使用率和活动水平。可以通过一些工具来监测磁盘繁忙度,如 iostat、iotop、sar 等。

其中,iostat 是一个常用的工具,可以提供关于磁盘活动的详细统计信息。通过运行命令 iostat -x 1 可以实时监测磁盘的使用情况,其中 %util 列就表示磁盘的繁忙度,数值越高表示磁盘越繁忙。

另外,iotop 是一个类似于 top 命令的工具,可以实时监测磁盘的使用情况。运行命令 iotop 可以查看当前磁盘活动最频繁的进程,并显示其读写速度、I/O 请求等信息。

sar 是系统性能分析工具,通过收集系统资源使用情况的历史数据,可以获得更详细的磁盘繁忙度信息。运行命令 sar -d 1 可以实时监测磁盘的使用情况。

综上所述,以上工具都可以帮助您监测和分析 Linux 磁盘的繁忙度

在主机维护方面,面对前端业务运行缓慢的情况时磁盘繁忙度监控可以提供数据分析,实战监控脚本如下:

#!/bin/bash

#writing time: Friday Jun 16 11:29 2023
#description: get disk load info
#author: Albert-M

function get_disk_load()
{
iostat -x 1 1 | grep $1
if [ $? == 0 ];then
iostat -x 1 10 | grep $1 | awk '{a+=$NF}END{print strftime("[%Y-%m-%d %H:%M:%S]"),$1,a/NR}' > /ap/log/iostat_$1_info
cat /ap/log/iostat_$1_info >> /var/log/disk/disk.log-`date +%Y%m%d`
/opt/product/zabbix/bin/zabbix_sender -c /opt/product/zabbix/conf/zabbix_agentd.conf -k $1'_util' -o `awk '{print $4}' /ap/log/iostat_$1_info`
fi
}

get_disk_load sda
get_disk_load sdb
get_disk_load sdc
get_disk_load sdd
get_disk_load sde
get_disk_load sdf
get_disk_load sdg