def get_status(self): from PYME.IO.FileUtils.freeSpace import disk_usage status = {} status.update(global_status) total, used, free = disk_usage(os.getcwd()) status['Disk'] = {'total': total, 'used': used, 'free': free} status['Uptime'] = str(datetime.datetime.now() - startTime) try: import psutil status['CPUUsage'] = psutil.cpu_percent(interval=.1, percpu=True) status['MemUsage'] = psutil.virtual_memory()._asdict() except ImportError: pass content = json.dumps(status) encoding = sys.getfilesystemencoding() return ResponseOK(content, headers=[ ("Content-type", "application/json; charset=%s" % encoding), ])
def updateStatus(): global _last_update_time from PYME.IO.FileUtils.freeSpace import disk_usage #status = {} #status.update(global_status) total, used, free = disk_usage(os.getcwd()) status['Disk'] = {'total': total, 'used': used, 'free': free} status['Uptime'] = str(datetime.datetime.now() - startTime) try: import psutil ut = time.time() status['CPUUsage'] = psutil.cpu_percent(interval=0, percpu=True) status['MemUsage'] = psutil.virtual_memory()._asdict() nets = psutil.net_io_counters(True) dt = ut - _last_update_time status['Network'] = { iface: { 'send': (nets[iface].bytes_sent - _net[iface].bytes_sent) / dt, 'recv': (nets[iface].bytes_recv - _net[iface].bytes_recv) / dt } for iface in nets.keys() } _net.update(nets) _last_update_time = ut except ImportError: pass if GPU_STATS: handles = [ pynvml.nvmlDeviceGetHandleByIndex(i) for i in range(pynvml.nvmlDeviceGetCount()) ] gpu_usage = [pynvml.nvmlDeviceGetUtilizationRates(h) for h in handles] status['GPUUsage'] = [float(gu.gpu) for gu in gpu_usage] status['GPUMem'] = [float(gu.memory) for gu in gpu_usage]