Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie System-IOPS in Python

So erhalten Sie System-IOPS in Python

高洛峰
高洛峰Original
2017-02-27 10:04:511829Durchsuche

Einführung in IOPS

IOPS wird hauptsächlich in Daten verwendet. Dieser Indikator ist eine wichtige Referenz für die Bewertung der Datenbankleistung (IOPS). Die Anzahl der Vorgänge hängt hauptsächlich von der Leistung des wahlfreien Zugriffs ab. Um die IOPS zu erhöhen, müssen die tatsächlichen Online-Datenbanken dem tatsächlichen Druck grundsätzlich nicht standhalten Wenn Sie eine physische Maschine verwenden, müssen Sie natürlich auch prüfen, wie viel IOPS in der Praxis erreicht werden kann Wählen Sie die IOPS entsprechend Ihrer Geschäftssituation. Dies ist im Grunde ein Parameter und kann je nach Bedarf geändert werden. Je größer der Wert, desto höher sind natürlich die Kosten.

Python erhält das System Iops-Code wie folgt:

#!/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))

Zusammenfassung

Oben geht es darum, dass Python System-IOPS erhält. Ich hoffe, dass dieser Artikel allen beim Erlernen und Verwenden von Python hilfreich sein wird. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation hinterlassen.

Weitere Artikel zum Erhalten von System-IOPS in Python finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn