Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 def test_compute_active_cpu_time(self):
     start_usage = {
         'user': 900,
         'nice': 10,
         'system': 90,
         'idle': 10000,
         'iowait': 500,
         'irq': 100,
         'softirq': 50,
         'steal': 150,
         'guest': 170,
         'guest_nice': 30
     }
     end_usage = {
         'user': 1800,
         'nice': 20,
         'system': 180,
         'idle': 13000,
         'iowait': 2000,
         'irq': 200,
         'softirq': 100,
         'steal': 300,
         'guest': 340,
         'guest_nice': 60
     }
     usage = utils.compute_active_cpu_time(start_usage, end_usage)
     self.assertAlmostEqual(usage, 0.25)
    def compute_active_cpu_time(self, cpu_usage_start, cpu_usage_end):
        """Computes the fraction of CPU time spent non-idling.

        This function should be invoked using before/after values from calls to
        get_cpu_usage().
        """
        return utils.compute_active_cpu_time(cpu_usage_start, cpu_usage_end)
    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
Exemplo n.º 6
0
    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())