Maison >développement back-end >Tutoriel Python >Comment obtenir des IOPS système en Python

Comment obtenir des IOPS système en Python

高洛峰
高洛峰original
2017-02-27 10:04:511891parcourir

Introduction aux iops

iops est principalement utilisé dans les données. Cet indicateur est une référence importante pour l'évaluation des performances des bases de données. par seconde. ) Le nombre d'opérations dépend principalement des performances de l'accès aléatoire. Généralement, pour augmenter les IOPS, il faut s'appuyer sur les bases de données en ligne réelles qui sont essentiellement configurées avec Raid5. environnement de production. Bien sûr, vous devez également vérifier la pression spécifique de l'entreprise. Si vous utilisez une machine physique, vous devez voir combien d'IOPS peuvent atteindre dans la pratique. Si vous utilisez une base de données cloud RDS, vous pouvez le faire. choisissez les IOPS en fonction de la situation de votre entreprise. , il s'agit essentiellement d'un paramètre et peut être modifié selon les besoins. Bien sûr, plus la valeur est grande, plus le coût est élevé

Python obtient le système. Code iops comme suit :

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

Résumé

Ce qui précède concerne l'obtention d'IOPS système par Python, j'espère que cet article sera utile à tout le monde dans l'apprentissage et l'utilisation de Python. Si vous avez des questions, vous pouvez laisser un message pour communiquer.

Pour plus d'articles sur la façon d'obtenir des iops système en Python, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn