def get_cpu_usage(cr): time.sleep(STABILIZATION_DURATION) cpu_usage_start = utils.get_cpu_usage() time.sleep(MEASUREMENT_DURATION) cpu_usage_end = utils.get_cpu_usage() return utils.compute_active_cpu_time(cpu_usage_start, cpu_usage_end) * 100
def test_cpu_usage(self): """ Runs the video cpu usage test. @param local_path: the path to the video file. @returns a dictionary that contains the test result. """ cpu_usage_start = utils.get_cpu_usage() time.sleep(MEASUREMENT_DURATION) cpu_usage_end = utils.get_cpu_usage() return utils.compute_active_cpu_time(cpu_usage_start, cpu_usage_end) * 100
def _get_cpu_usage(self): """Compute percent CPU in active use over the sample interval. Note: This method introduces a sleep period into the test, equal to 90% of the sample interval. @returns float of percent active use of CPU. """ # Time between measurements is ~90% of the sample interval. measurement_time_delta = SAMPLE_INTERVAL * 0.90 cpu_usage_start = utils.get_cpu_usage() time.sleep(measurement_time_delta) cpu_usage_end = utils.get_cpu_usage() return utils.compute_active_cpu_time(cpu_usage_start, cpu_usage_end) * 100
def get_cpu_usage(self): """Returns machine's CPU usage. Returns: A dictionary with 'user', 'nice', 'system' and 'idle' values. Sample dictionary: { 'user': 254544, 'nice': 9, 'system': 254768, 'idle': 2859878, } """ return utils.get_cpu_usage()
def test_get_cpu_missing_columns(self): self.fake_file_text = 'cpu 254544 9 254768 2859878\n' usage = utils.get_cpu_usage() self.assertEquals({ 'user': 254544, 'nice': 9, 'system': 254768, 'idle': 2859878, 'iowait': 0, 'irq': 0, 'softirq': 0, 'steal': 0, 'guest': 0, 'guest_nice': 0 }, usage)
def test_get_cpu_usage(self): self.fake_file_text = 'cpu 254544 9 254768 2859878 1 2 3 4 5 6\n' usage = utils.get_cpu_usage() self.assertEquals({ 'user': 254544, 'nice': 9, 'system': 254768, 'idle': 2859878, 'iowait': 1, 'irq': 2, 'softirq': 3, 'steal': 4, 'guest': 5, 'guest_nice': 6 }, usage)
def sample(self, fps_info): """Gets a fps sample with system state.""" vmstat = self.get_vmstat() vmstat_diff = self.VMStat( *[(end - start) for start, end in zip(self._prev_vmstat, vmstat)]) self._prev_vmstat = vmstat cpustat = utils.get_cpu_usage() cpuload = utils.compute_active_cpu_time(self._prev_cpustat, cpustat) self._prev_cpustat = cpustat mem_info_in_kb = utils.get_meminfo() # Converts mem_info from KB to MB. mem_info = collections.namedtuple( 'MemInfo', mem_info_in_kb._fields)(*[v / float(1024) for v in mem_info_in_kb]) consumer_pids = self._get_consumer_pid_func() logging.info('Consumers %s', consumer_pids) consumer_rss, consumer_swap = self.get_consumer_meminfo(consumer_pids) # fps_info = (frame_info, frame_times) fps_count = len([f for f in fps_info[0] if f != ' ']) sample = self.Sample( pswpin=vmstat_diff.pswpin, pswpout=vmstat_diff.pswpout, free_mem=mem_info.MemFree, buff_mem=mem_info.Buffers, cached_mem=mem_info.Cached, anon_mem=mem_info.Active_anon + mem_info.Inactive_anon, file_mem=mem_info.Active_file + mem_info.Inactive_file, swap_free=mem_info.SwapFree, swap_used=mem_info.SwapTotal - mem_info.SwapFree, consumer_num=len(consumer_pids), consumer_rss=consumer_rss, consumer_swap=consumer_swap, cpuload=cpuload, fps=fps_count) logging.info(sample) with self._samples_lock: self._samples.append(sample)
def stop(self): return utils.compute_active_cpu_time( self.start_cpu_usage_, utils.get_cpu_usage())
def start(self): self.start_cpu_usage_ = utils.get_cpu_usage()
def reset(self): """Resets its internal stats.""" self._prev_vmstat = self.get_vmstat() self._prev_cpustat = utils.get_cpu_usage()