Python 으로 서버의 Disk IO 를 측정/모니터링 해보자.

 

# ------------------------------------------------------------------------------
# Disk IO (Write Count) 모니터링
# ------------------------------------------------------------------------------

import os
import sys
import time

# pip install psutil 으로 먼저 설치
import psutil

# pip install pymssql 으로 먼저 설치 (MS-SQL을 사용하는 경우)
import pymssql


interval = 60
disk_io_over = 0
max_val = 0


def send_sms(receiver, msg):
    # 자신의 환경에 맞는 문자전송시스템에 보내도록 구현


while 1:
    disks_before = psutil.disk_io_counters()
    time.sleep(interval)
    disks_after = psutil.disk_io_counters()
    disks_write_cnt_per_sec = disks_after.write_count - disks_before.write_count
    if disks_write_cnt_per_sec > max_val :
        max_val = disks_write_cnt_per_sec

    print("Cur Val : %d, Max Val : %d" % (disks_write_cnt_per_sec, max_val))

    if disks_write_cnt_per_sec > 20000 :
        if disk_io_over == 0 :
            send_sms('받는이전화번호', 'YoonHQ Disk IO Error')
            print('Disk IO Error\n')
        disk_io_over = 1
    else :
        if disk_io_over == 1 :
            send_sms('받는이전화번호', 'YoonHQ Disk IO Normal')
            print('Disk IO Normal\n')
        disk_io_over = 0


+ Recent posts