def disk_io_counters(perdisk=False): """Return system disk I/O statistics as a namedtuple including: - number of bytes read - number of bytes written - number of reads - number of writes - time spent reading from disk (in nanoseconds) - time spent writing to disk (in nanoseconds) If perdisk is True return the same information for every physical disk installed on the system as a dictionary with partition names as the keys and the namedutuple described above as the values. """ from psutil._common import ntuple_disk_iostat rawdict = _psplatform.disk_io_counters() if perdisk: for disk, fields in rawdict.iteritems(): rawdict[disk] = ntuple_disk_iostat(*fields) return rawdict else: reads, writes, rbytes, wbytes, rtime, wtime = 0, 0, 0, 0, 0, 0 for _, fields in rawdict.iteritems(): reads += fields[0] writes += fields[1] rbytes += fields[2] wbytes += fields[3] rtime += fields[4] wtime += fields[5] return ntuple_disk_iostat(reads, writes, rbytes, wbytes, rtime, wtime)
def disk_io_counters(perdisk=False): """Return system disk I/O statistics as a namedtuple including the following attributes: - read_count: number of reads - write_count: number of writes - read_bytes: number of bytes read - write_bytes: number of bytes written - read_time: time spent reading from disk (in milliseconds) - write_time: time spent writing to disk (in milliseconds) If perdisk is True return the same information for every physical disk installed on the system as a dictionary with partition names as the keys and the namedutuple described above as the values. """ rawdict = _psplatform.disk_io_counters() if not rawdict: raise RuntimeError("couldn't find any physical disk") if perdisk: for disk, fields in rawdict.items(): rawdict[disk] = _nt_disk_iostat(*fields) return rawdict else: return _nt_disk_iostat(*[sum(x) for x in zip(*rawdict.values())])
def disk_io_counters(perdisk=False): """Return system disk I/O statistics as a namedtuple including the following attributes: - read_count: number of reads - write_count: number of writes - read_bytes: number of bytes read - write_bytes: number of bytes written - read_time: time spent reading from disk (in milliseconds) - write_time: time spent writing to disk (in milliseconds) If perdisk is True return the same information for every physical disk installed on the system as a dictionary with partition names as the keys and the namedutuple described above as the values. On recent Windows versions 'diskperf -y' command may need to be executed first otherwise this function won't find any disk. """ rawdict = _psplatform.disk_io_counters() if not rawdict: raise RuntimeError("couldn't find any physical disk") if perdisk: for disk, fields in rawdict.items(): rawdict[disk] = _nt_disk_iostat(*fields) return rawdict else: return _nt_disk_iostat(*[sum(x) for x in zip(*rawdict.values())])