vmstat.py
import os
#定义Vmstat这个类
class VmStat(object):
def __init__(self):
self.vmstat_file = open('/proc/vmstat')
self.vmstat = self.read()
def read(self):
def extract(line):
return int(line.split()[1]) * 1024
for line in self.vmstat_file:
if line.startswith('pgpgin'):
pgpgin = extract(line)
if line.startswith('pgpgout'):
pgpgout = extract(line)
break
self.vmstat_file.seek(0)
#这里将文件位置重新设置为0即文件的开始位置,可以避免再次打开文件
return pgpgin,pgpgout
def delta(self):
now = self.read()
delta = now[0] - self.vmstat[0], now[1] - self.vmstat[1]
self.vmstat = now
return delta
这段程序主要的作用是获取/proc/vmstat文件中pgpgin和pgpgout两行的值。
pgpgin – Number of kilobytes the system has paged in from disk per second.
pgpgout – Number of kilobytes the system has paged out to disk per second
pgpgin 以KB表示系统从磁盘置入到内存的页面大小
pgpgout 以KB表示系统从内存置出到磁盘的页面大小
通过读取/proc/vmstat每行的内容,找出pgpgin和pgpgout的值并乘以1024换成B。
转载于:https://blog.51cto.com/john88wang/1547536