Python如何获取系统iops示例代码

 更新时间:2016年09月06日 09:48:06   投稿:daisy  
这篇文章主要是介绍用python通过系统数据来获取磁盘的iops,便于监控使用情况,对于大家在安全监控方面很实用,有需要的朋友们可以参考借鉴。

iops简介

iops主要用在数据方面,这个指标是数据库性能评定的一个重要参考,iops的是每秒进行读写(I/O)操作的次数,主要看随机访问的性能,一般为了iops增高都要依靠磁盘阵列,实际线上的数据库基本都是raid10的配置,raid5在实际生产环境中如果压力上来是抗不住的,当然也要开具体业务压力情况,如果是用物理机就要看iops在实际中能跑到多少值,现在云也普遍了,如果你用的RDS云数据库,这个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))

总结

以上就是Python获得系统iops的全部内容,希望这篇文章对大家学习和使用python能有一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • python3获取当前文件的上一级目录实例

    python3获取当前文件的上一级目录实例

    下面小编就为大家分享一篇python3获取当前文件的上一级目录实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 关于Pandas缺失值inf与nan的处理实践

    关于Pandas缺失值inf与nan的处理实践

    这篇文章主要介绍了关于Pandas缺失值inf与nan的处理实践,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python词法结构

    Python词法结构

    这篇文章主要介绍了Python词法结构,变量是一种存储数据的载体,也就是一个容器。计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间,变量的值可以被读取和修改,这是所有计算机和控制的基础,下面详细内容,需要的朋友可以参考一下
    2021-10-10
  • 利用Python中的mock库对Python代码进行模拟测试

    利用Python中的mock库对Python代码进行模拟测试

    这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下
    2015-04-04
  • 利用Selenium添加cookie实现自动登录的示例代码(fofa)

    利用Selenium添加cookie实现自动登录的示例代码(fofa)

    这篇文章主要介绍了利用Selenium添加cookie实现自动登录的示例代码(fofa),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Tornado 多进程实现分析详解

    Tornado 多进程实现分析详解

    这篇文章主要介绍了Tornado 多进程实现分析详解,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Django websocket原理及功能实现代码

    Django websocket原理及功能实现代码

    这篇文章主要介绍了Django websocket原理及功能实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python中常见的数据类型小结

    Python中常见的数据类型小结

    这篇文章主要对Python中常见的数据类型进行了总结归纳,很有参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • django中使用事务及接入支付宝支付功能

    django中使用事务及接入支付宝支付功能

    这篇文章主要介绍了django中使用事务以及接入支付宝支付功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • pytest中fixture函数使用

    pytest中fixture函数使用

    本文主要介绍了pytest中fixture函数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论