ホームページ >バックエンド開発 >Python チュートリアル >Python でシステム IOPS を取得する方法

Python でシステム IOPS を取得する方法

高洛峰
高洛峰オリジナル
2017-02-27 10:04:511871ブラウズ

iopsの概要

iopsは主にデータで使用され、データベースのパフォーマンス評価の重要な基準であり、主にパフォーマンスに依存します。一般に、IOPS を向上させるには、実際のオンライン データベースは RAID 10 で構成されます。もちろん、RAID 5 は、実際の運用環境の負荷に耐えることができません。 RDS クラウド データベースを使用する場合、これは基本的にパラメータであり、次のように変更できます。もちろん、値が大きいほどコストが高くなります

システム IOPS を取得するための Python のコードは次のとおりです:

#!/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 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。