15. 監控磁碟IO使用率
計算機有三大件:CPU、記憶體和磁碟,這三者中往往是磁碟會“拖後腿”。在生產環境,作為資料庫角色的伺服器磁碟建議拿4塊硬碟做磁碟陣列RAID10,這樣既保證資料讀寫速度也保證資料的安全。
本案例要求寫一個監控磁碟IO使用率的指令碼,實時檢視IO使用情況,防止因為磁碟IO效率低而導致MySQL查詢慢的問題。
具體要求如下:
1)磁碟IO使用超過90就記錄日誌並郵件告警;
2)假設記錄日誌的目錄是 /data/iolog/ ;
3)找出導致磁碟IO使用率過高的程式。
郵件指令碼如下:
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mine.text import MIMEText
import sys
mail_host = 'stmp.163.com'
mail_user = 'test@163.com'
mail_pass = 'your_mail_password'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = "zabbix 監控告警平臺"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,'plain','utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib:SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__"
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
參考指令碼如下:
#!/bin/bash
#監控磁碟IO使用率並告警
#定義收件人郵箱
mail="/usr/local/sbin/mail.py"
mail_user=admin@admin.com
if ! which iostat &>/dev/null
then
yum install -y sysstat
fi
if ! which iotop &>/dev/null
then
yum install -y iotop
fi
logdir=/data/iolog
dt=`date +%F` #以日期作為日誌名字
#獲取IO,取5次平均值
get_io()
{
iostat -dx 1 5 > $logdir/iostat.log
sum=0
for ut in `grep "^$1" $logdir/iostat.log |awk '{print $NF}' |cut -d '.' -f 1`
do
sum=$[$sum+$ut]
done
echo $[$sum/5]
}
while ture
do
for d in `iostat -dx |egrep -v '^$|Device:|CPU\}' |awk '{print $1}'
do
io=`get_io $d`
if [ $io -gt 90 ]
then
date >> $logdir/$dt
cat $logdir/iostat.log >> $logdir/$dt
iotop -obn2 >> $logdir/$dt
echo "###################" >> $logdir/$dt
python $mail $mail_user "磁碟IO使用率超過90%" "`cat $logdir/$dt`" 2>/dev/null
fi
done
sleep 10
done
相關文章
- 磁碟IO效能監控
- 5. 監控磁碟使用率
- 監控磁碟使用率的shell指令碼指令碼
- 【shell】磁碟監控指令碼指令碼
- RabbitMQ - 記憶體磁碟監控MQ記憶體
- IO實時監控命令iostat詳解iOS
- 15.阻止觸控竊賊
- 在Linux中,如何進行磁碟效能監控?Linux
- 記憶體與IO,磁碟IO,網路IO記憶體
- nodejs監聽cpu使用率、記憶體使用率,並通過socket.io與vue專案互動NodeJS記憶體Vue
- Linux老司機帶你學WGCLOUD 磁碟告警是針對磁碟總使用率還是單個磁碟使用率LinuxGCCloud
- 簡述Linux磁碟IOLinux
- MySQL 磁碟 IO 過高MySql
- Zabbix 5.0:磁碟自動發現和讀寫監控
- Linux 磁碟 使用率 檢視 處理Linux
- win10磁碟使用率100%怎麼解決_win10磁碟使用率100%優化方法Win10優化
- 定位磁碟IO佔用命令
- 使用iostat檢視磁碟IOiOS
- win10磁碟使用率100%怎麼解決_win10磁碟使用率100%最佳化方法Win10
- 開源運維軟體 WGCLOUD 可以監控磁碟陣列嗎運維GCCloud陣列
- 用於自動監控磁碟使用情況的 Shell 指令碼指令碼
- 黑盒監控、日誌監控
- PowerShell 指令碼來監控 CPU、記憶體和磁碟使用情況:指令碼記憶體
- 如何用bash shell 指令碼監控 Linux記憶體、磁碟和 CPU?指令碼Linux記憶體
- Linux中監控磁碟分割槽及使用情況的命令有哪些?Linux
- Linux中監控磁碟分割槽和使用情況的幾個工具Linux
- 在 Linux 中如何使用 iotop 和 iostat 監控磁碟 I/O 活動?LinuxiOS
- 6.prometheus監控--監控dockerPrometheusDocker
- TiDB監控實現--存活監控TiDB
- 監控
- 聊聊前端監控——錯誤監控篇前端
- 檢視伺服器的磁碟io效能伺服器
- mysql資料庫磁碟io高的排查MySql資料庫
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- Linux下針對伺服器網路卡流量和磁碟的監控指令碼Linux伺服器指令碼
- APM效能監控軟體的監控型別服務及監控流程型別
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- 3-主機監控、應用監控