def cpuload(): with open('/proc/uptime', 'rt') as fd: old_uptime, old_idle = readfd(fd) while True: time.sleep(1.5) uptime, idle = readfd(fd) tot_time = (uptime-old_uptime) * num_cores load_time = tot_time - (idle - old_idle) cpu_load = load_time / tot_time old_uptime, old_idle = uptime, idle #log.info("cpu load: {:.1%}".format(cpu_load)) root['cpuload'].update(cpu_load)
def get_cpu(self): if not self.last_pid: self.last_pid = self.pid if not self.sched_fd: self.sched_fd = open('/proc/%s/schedstat'%self.last_pid, 'rt') cpu, *_ = readfd(self.sched_fd, conv=int) return cpu