>  기사  >  백엔드 개발  >  Python에서 시스템 IOPS를 얻는 방법

Python에서 시스템 IOPS를 얻는 방법

高洛峰
高洛峰원래의
2017-02-27 10:04:511775검색

iops 소개

iops는 주로 데이터에 사용되는 지표로, iops는 읽기 및 쓰기(I/O)를 의미합니다. ) 작업 횟수는 주로 랜덤 액세스 성능에 따라 달라집니다. 일반적으로 IOPS를 높이려면 디스크 어레이에 의존해야 합니다. 실제 온라인 데이터베이스는 Raid10으로 구성되어 있으므로 실제 환경에서는 이를 견딜 수 없습니다. 물론 구체적인 비즈니스 압박도 확인해야 합니다. 실제 머신을 사용하는 경우 클라우드가 실제로 어느 정도까지 도달할 수 있는지 확인해야 합니다. 비즈니스 상황에 따라 IOPS를 선택하세요. 기본적으로 필요에 따라 수정할 수 있는 매개변수입니다. 물론 값이 클수록 비용도 높아집니다.

Python은 시스템 IOPS를 얻습니다. 코드는 다음과 같습니다:

#!/usr/bin/python

import os, time, math

run_tests = 3

devices = os.listdir('/sys/block/')
check_devices = []

reads = {}
writes = {}

for dev in devices:
    if dev.startswith('md') or dev.startswith('sd') or dev.startswith('hd'):
        check_devices.append(dev)
        reads[dev] = []
        writes[dev] = []

check_devices = sorted(check_devices)

for t in range(run_tests + 1):
    for dev in check_devices:
        file_data = open('/sys/block/%s/stat' % dev).readline().strip().split(' ')
        clean = []
        for num in file_data:
            if num != '':
                clean.append(int(num))

        reads[dev].append(clean[0])
        writes[dev].append(clean[4])
    print reads[dev]
    print writes[dev]

    time.sleep(1)



print "Device    Read    Write"
print "--------------------------------------"
for dev in check_devices:
    clean_reads = []
    reads[dev].reverse()
    for test, result in enumerate(reads[dev]):
        if test > 0:
            clean_reads.append(float(reads[dev][test - 1] - result))

    rops = int(math.ceil(sum(clean_reads) / len(clean_reads)))

    clean_writes = []
    writes[dev].reverse()
    for test, result in enumerate(writes[dev]):
        if test > 0:
            clean_writes.append(float(writes[dev][test - 1] - result))

    wops = int(math.ceil(sum(clean_writes) / len(clean_writes)))

    print "%s %s %s" % (dev.ljust(13), repr(rops).ljust(11), repr(wops))

요약

위 내용은 시스템 IOPS를 얻기 위한 Python의 모든 내용입니다. Python을 배우고 사용하는 것이 어느 정도 도움이 될 수 있으므로 이 글이 모든 분들께 도움이 되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨주세요.

Python에서 시스템 IOPS를 얻는 방법에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.