На странице Wikipedia в течение процессорного времени говорит это
Процессорное время измеряется в тактах системных часов или секунды. Часто, полезно измерить процессорное время как процент способности ЦП, которую называют использованием ЦП.
Я не понимаю, как продолжительность времени может быть заменена процентом. Когда я смотрю на top
, не делает %CPU
скажите мне это MATLAB
использует 2.17 из моих ядер?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB
Вопрос
Для лучше понимания, каково использование ЦП, как я вычисляю использование ЦП сам?
Процессорное время распределяется в дискретных временных интервалах (тиках). В течение определенного количества временных интервалов ЦП занят, в других случаях - нет (что представлено незанятым процессом). На рисунке ниже ЦП занят для 6 из 10 секторов ЦП. 6/10 = 0,60 = 60% времени занятости (и, следовательно, будет 40% времени простоя).
процент определяется как «число или скорость, которая выражается как определенное количество частей чего-либо, разделенных на 100 частей». Таким образом, в данном случае эти части представляют собой дискретные срезы времени, а временные срезы «что-то занято» по сравнению с временными срезами простоя - соотношение занятых и незанятых временных срезов.
Поскольку процессоры работают в ГГц (миллиарды циклов в секунду). Операционная система делит это время на более мелкие единицы, называемые тиками. На самом деле это не 1/10 секунды. Скорость тиков в Windows составляет 10 миллионов тиков в секунду , а в Linux - sysconf (_SC_CLK_TCK)
(обычно 100 тиков в секунду).
Что-то вроде вверху
загруженные циклы ЦП затем разбиваются на процентные доли таких вещей, как время пользователя и системное время. В top
в Linux и perfmon в Windows вы часто получаете отображение, которое превышает 100%, то есть потому, что общее количество составляет 100% * the_number_of_cpu_cores.
В операционной системе задача планировщика распределять эти драгоценные фрагменты процессам, поэтому планировщик сообщает об этом.
Процессорное время - это время, в течение которого процесс использует ЦП. Его преобразование в процентное соотношение выполняется делением на количество прошедшего реального времени.
Итак, если у меня есть процесс, который использует 1 секунду процессорного времени в течение 2 секунд, он использует 50% ЦП.
В случае вашего процесса MATLAB, 217% означает, что он использовал 2,17 секунды процессорного времени в секунду в течение последний интервал выборки - эффективно, монополизируя 2 ядра ЦП и забирая часть третьего.