ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 52.15.211.173 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/dstat/ |
Upload File : |
### Author: Bert de Bruijn <bert+dstat$debruijn,be> ### VMware ESX kernel vmhba stats ### Displays kernel vmhba statistics on VMware ESX servers # NOTE TO USERS: command-line plugin configuration is not yet possible, so I've # "borrowed" the -D argument. # EXAMPLES: # # dstat --vmkhba -D vmhba1,vmhba2,total # # dstat --vmkhba -D vmhba0 # You can even combine the Linux and VMkernel diskstats (but the "total" argument # will be used by both). # # dstat --vmkhba -d -D sda,vmhba1 class dstat_plugin(dstat): def __init__(self): self.name = 'vmkhba' self.nick = ('read', 'writ') self.cols = 2 def discover(self, *list): # discover will list all vmhba's found. # we might want to filter out the unused vmhba's (read stats, compare with ['0', ] * 13) ret = [] try: list = os.listdir('/proc/vmware/scsi/') except: raise Exception, 'Needs VMware ESX' for name in list: for line in dopen('/proc/vmware/scsi/%s/stats' % name).readlines(): l = line.split() if len(l) < 13: continue if l[0] == 'cmds': continue if l == ['0', ] * 13: continue ret.append(name) return ret def vars(self): # vars will take the argument list - when implemented - , use total, or will use discover + total ret = [] if op.disklist: list = op.disklist #elif not op.full: # list = ('total', ) else: list = self.discover list.sort() for name in list: if name in self.discover + ['total']: ret.append(name) return ret def check(self): try: os.listdir('/proc/vmware') except: raise Exception, 'Needs VMware ESX' info(1, 'The vmkhba module is an EXPERIMENTAL module.') def extract(self): self.set2['total'] = (0, 0) for name in self.vars: self.set2[name] = (0, 0) for name in os.listdir('/proc/vmware/scsi/'): for line in dopen('/proc/vmware/scsi/%s/stats' % name).readlines(): l = line.split() if len(l) < 13: continue if l[0] == 'cmds': continue if l[2] == '0' and l[4] == '0': continue if l == ['0', ] * 13: continue self.set2['total'] = ( self.set2['total'][0] + long(l[2]), self.set2['total'][1] + long(l[4]) ) if name in self.vars and name != 'total': self.set2[name] = ( long(l[2]), long(l[4]) ) for name in self.set2.keys(): self.val[name] = ( (self.set2[name][0] - self.set1[name][0]) * 1024.0 / elapsed, (self.set2[name][1] - self.set1[name][1]) * 1024.0 / elapsed, ) if step == op.delay: self.set1.update(self.set2)