コード例 #1
0
    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),
                          ])
コード例 #2
0
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]