How to get system iops in Python

高洛峰
Release: 2017-02-27 10:04:51
Original
1827 people have browsed it

iops introduction

iops is mainly used in data. This indicator is an important reference for database performance evaluation. Iops refers to reading and writing (I/O) per second. ) The number of operations mainly depends on the performance of random access. Generally, in order to increase IOPS, disk arrays must be relied on. The actual online databases are basically configured with raid10. Raid5 cannot withstand the pressure in the actual production environment. Of course, You also need to check the specific business pressure. If you are using a physical machine, you need to see how much IOPS can reach in practice. Clouds are now common. If you use an RDS cloud database, you can choose the IOPS according to your business situation. , basically a parameter, which can be modified as needed. Of course, the larger the value, the higher the cost.

Python obtains the system iops code as follows:

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

Summary

The above is all the content of Python to obtain system iops. I hope this article will be helpful to everyone Learning and using python can be helpful to a certain extent. If you have any questions, you can leave a message to communicate.

For more articles related to how to obtain system iops in Python, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!