1*9c5db199SXin Li""" 2*9c5db199SXin LiRuns vmstat X where X is the interval in seconds 3*9c5db199SXin Li 4*9c5db199SXin LiDefaults options: 5*9c5db199SXin Lijob.profilers.add('vmstat', interval=1) 6*9c5db199SXin Li""" 7*9c5db199SXin Liimport time, os, subprocess 8*9c5db199SXin Lifrom autotest_lib.client.bin import profiler 9*9c5db199SXin Li 10*9c5db199SXin Li 11*9c5db199SXin Liclass vmstat(profiler.profiler): 12*9c5db199SXin Li version = 1 13*9c5db199SXin Li 14*9c5db199SXin Li def initialize(self, interval = 1): 15*9c5db199SXin Li self.interval = interval 16*9c5db199SXin Li 17*9c5db199SXin Li 18*9c5db199SXin Li def start(self, test): 19*9c5db199SXin Li cmd = "/usr/bin/vmstat %d" % self.interval 20*9c5db199SXin Li logfile = open(os.path.join(test.profdir, "vmstat"), 'w') 21*9c5db199SXin Li p = subprocess.Popen(cmd, shell=True, stdout=logfile, \ 22*9c5db199SXin Li stderr=subprocess.STDOUT) 23*9c5db199SXin Li self.pid = p.pid 24*9c5db199SXin Li 25*9c5db199SXin Li 26*9c5db199SXin Li def stop(self, test): 27*9c5db199SXin Li os.kill(self.pid, 15) 28*9c5db199SXin Li 29*9c5db199SXin Li 30*9c5db199SXin Li def report(self, test): 31*9c5db199SXin Li return None 32