用于监视/ proc / diskstats的Python库?

我想监视一个python程序的系统IO负载,访问类似linux中/proc/diskstats提供的统计信息(尽pipe显然跨平台的库会很棒)。 有一个现有的Python库,我可以用它来查询Linux上的磁盘IO统计信息?

如果其他人试图用Python解析/ proc / diskstats像Alex建议的那样:

 def diskstats_parse(dev=None): file_path = '/proc/diskstats' result = {} # ref: http://lxr.osuosl.org/source/Documentation/iostats.txt columns_disk = ['m', 'mm', 'dev', 'reads', 'rd_mrg', 'rd_sectors', 'ms_reading', 'writes', 'wr_mrg', 'wr_sectors', 'ms_writing', 'cur_ios', 'ms_doing_io', 'ms_weighted'] columns_partition = ['m', 'mm', 'dev', 'reads', 'rd_sectors', 'writes', 'wr_sectors'] lines = open(file_path, 'r').readlines() for line in lines: if line == '': continue split = line.split() if len(split) == len(columns_disk): columns = columns_disk elif len(split) == len(columns_partition): columns = columns_partition else: # No match continue data = dict(zip(columns, split)) if dev != None and dev != data['dev']: continue for key in data: if key != 'dev': data[key] = int(data[key]) result[data['dev']] = data return result 

PSUtil提供了一些磁盘和fs统计信息,也是跨平台的。

你应该看看psutil.disk_io_counters(perdisk=True) ,它返回一些有用的指标:

 read_count:读取次数
 write_count:写入次数
 read_bytes:读取的字节数
 write_bytes:写入的字节数
 read_time:从磁盘读取的时间(以毫秒为单位)
 write_time:写入磁盘的时间(以毫秒为单位)

这些指标来自/proc/diskstats (在Linux上)

只是周期性地读取/proc/diskstats有什么问题,例如使用sched来每分钟重复一次操作? Linux的procfs很好,因为它为内核提供了一个文本的方式来为用户程序提供信息,因为文本是最容易阅读和使用的各种语言。

我还没有看到一个库,但你可能想看看名为“dstat”[1]的Python工具来阅读Linux内核统计信息。

[1] – http://dag.wieers.com/home-made/dstat/