Как сделать Ubuntu Linux 16.10 системным монитором?% Загрузка процессора согласуется с ps или top для процесса Firefox на четырехъядерном процессоре?

Я хотел бы сделать, что Ubuntu Linux 16.10 System Monitor% Измерение использования процессора в основном согласуется с использованием ps «pcpu»,% загрузки процессора для отдельного процесса браузера Firefox, работающего на рабочем столе Lenovo Thinkstation с четырьмя ядрами.

Предпочтения системного монитора Ubuntu Linux 16.10 в настоящее время установлены на:

 Update interval in seconds: 3.00 Enable smooth refresh: Yes Alert before ending or killing processes Yes Divide CPU usage by CPU count : Yes 

Вывод ps для процесса Firefox:

 $ ps -eo pid,rss,c,pcpu,cputime,cmd | grep firefox 2848 726024 3 3.5 00:50:23 /usr/lib/firefox/firefox -new-window 

После прочтения Linux: см. Использование процессора процессом за последнюю секунду , я узнал, как просматривать использование процессора за последнюю секунду. Верхний вывод для процесса Firefox:

 $ top -b -d 1 | grep -in "firefox" 8: 2848 ratio 20 0 1980240 641516 115240 S 18.8 15.9 73:10.86 firefox 

Для браузера Firefox я получаю 3.5% pcpu из ps -eo pid,rss,c,pcpu,cputime,cmd а для одного и того же браузера Firefox приложение GUI Ubuntu System Monitor показывает 5% загрузки процессора. Кроме того, я получаю 15,9% загрузки процессора сверху -b -d 1 | grep -in "firefox". Когда это разделено на 4 для 4-х ядер, используемых нашим процессором, я получаю 4.0% для выхода top.

Как я могу получить значения ps или top и системного монитора? Должен ли я включить параметр «Разделить процессор на CPU count»?

  • Создание сценария автоматического запуска бездействия
  • В чем смысл этого тестового выражения ?
  • процесс id и процесс убийства - ps commmand
  • Как показать время процессора для процессов через вершину без «корневых» процессов
  • Пожалуйста, объясните этот вывод команды ps -ef?
  • Понимание «vncserver -list» в отношении процессов Xvnc
  • Как получить PPID с помощью PS с использованием опций BSD
  • Значительная часть используемой памяти не учитывается пользовательскими процессами
  • One Solution collect form web for “Как сделать Ubuntu Linux 16.10 системным монитором?% Загрузка процессора согласуется с ps или top для процесса Firefox на четырехъядерном процессоре?”

    Быстрый ответ: нет, это действительно невозможно.

    Проблема здесь в первую очередь с концепцией процента процессора. Строго говоря, это на самом деле ничего не значит. CPU имеет только два состояния: он работает либо над чем-то (100%), либо ждет.

    Таким образом, если для процесса сообщается процент использования процессора 50%, это не означает, что используется только 50% процессора. Это означает, что в течение определенного периода времени процессор потратил 50% своего времени на процесс. Например, если интервал обновления установлен на 1 секунду, а процессор потратил полсекунды на процесс N, то CPU% для процесса N будет отображаться как 50%.

    Имея это в виду, мы можем взглянуть на различные способы проверки CPU%. Для ps это измеряется как (от man ps ):

     CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and it does not conform to the standards that ps otherwise conforms to. CPU usage is unlikely to add up to exactly 100%. 

    Таким образом, процент, как сообщается ps на самом деле является средним значением за весь срок службы процесса. Напротив, top отчеты:

     The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. 

    Я предполагаю, что gnome-system-monitor работает аналогичным образом, а его процессор% – это также процент времени, затрачиваемого процессором на данный процесс с момента последнего обновления. Знание C ++ по существу не существует, но следующие строки из proctable.cpp (часть исходного кода gnome-system-monitor ) показывают, что он действительно принимает среднее значение с момента последнего обновления:

     /* FIXME: total cpu time elapsed should be calculated on an individual basis here ** should probably have a total_time_last gint in the ProcInfo structure */ glibtop_get_cpu (&cpu); app->cpu_total_time = MAX(cpu.total - app->cpu_total_time_last, 1); app->cpu_total_time_last = cpu.total; 

    Итак, нет, вы не можете заставить ps и gnome-system-monitor согласиться, потому что ps показывает процент времени, затрачиваемого процессором на процесс с момента запуска процесса, а gnome-system-monitor показывает процент с момента последнего обновления .

    Также нет причин, по которым я могу себе представить, почему вам нужно будет согласовать эти два значения. Я думаю, что у нас есть какая-то проблема XY . Возможно, вы захотите задать новый вопрос, описывающий, какова ваша конечная цель, какую проблему вы пытаетесь решить, если согласовать два значения.

    Interesting Posts

    Переключение рабочего стола в KDE при запуске приложения с другой активностью

    Существует ли крючковая система для оболочки?

    Повторно добавить случайно удаленную системную группу

    Как навалом конвертировать весь файл в ветку файловой системы между Unix и Windows break break?

    Запуск ядра Linux в Virtualbox

    Как слить (без копирования) два каталога?

    Разрешения на файлы для загруженных файлов

    Перенос установки Linux с жесткого диска на SSD, который уже установил Windows 10

    Выход прерывается при добавлении вывода sql-запроса в ksh

    Ошибка ETX4-fs при запуске

    Удалить узел XML, содержащий определенный элемент

    Как запустить программу C в качестве демона?

    Почему аргументы в фигурных скобках в этом случае не расширяются?

    Ошибка «Ошибка устройства или ресурса» при попытке записи звука с использованием iscord

    Как получить уведомление, когда svcadm перезапустит службу, которая умерла

    Linux и Unix - лучшая ОС в мире.