утилита ps в linux (procps), как проверить, какой процессор используется - PullRequest
6 голосов
/ 20 апреля 2011

Это примерно procps пакет, утилита ps для linux.

Может ли он печатать номер последнего использованного ЦП для каждого процесса (потока)?

Обновление: неВремя ЦП (10 секунд), но НОМЕР ЦП (CPU0, CPU5, CPU123)

Ответы [ 4 ]

19 голосов
/ 21 апреля 2011

Страница man ps (1) говорит, что вы можете использовать поле psr:

   psr        PSR     processor that process is currently assigned to.
$ ps -o pid,psr,comm
  PID PSR COMMAND
 7871   1 bash
 9953   3 ps

Или вы можете использовать поле cpuid, которое делает то же самое.

$ ps -o pid,cpuid,comm
  PID CPUID COMMAND
 7871     1 bash
10746     3 ps

Причина двух имен заключается в совместимости с Solaris (psr) и NetBSD / OpenBSD (cpuid).

Чтобы получить темы, добавьте параметр -L (и поле lwp, если вы используете -o).

без резьбы:

$ ps -U $USER -o pid,psr,comm | egrep 'chromi|PID' | head -4
  PID PSR COMMAND
 6457   3 chromium-browse
 6459   0 chromium-browse
 6461   2 chromium-browse

С потоками:

$ ps -U $USER -L -o pid,lwp,psr,comm | egrep 'chromi|PID' | head -4
  PID   LWP PSR COMMAND
 6457  6457   3 chromium-browse
 6457  6464   1 chromium-browse
 6457  6465   2 chromium-browse

Существует также недокументированная опция -P, которая добавляет psr к обычным полям:

$ ps -U $USER -LP | egrep 'chromi|PID' | head -4
  PID   LWP PSR TTY          TIME CMD
 6457  6457   3 ?        00:01:19 chromium-browse
 6457  6464   1 ?        00:00:00 chromium-browse
 6457  6465   2 ?        00:00:00 chromium-browse
3 голосов
/ 21 апреля 2011

Также сильно недооценен:

mpstat -I ALL 1 | less -SR
3 голосов
/ 20 апреля 2011

какой из нескольких процессоров? это не предлагает вариант для этого согласно man-странице. но в моей стабильной системе Debian он принимает недокументированное -o cpu <ч /> После просмотра источника и вывода ps L, я полагаю, что ваш ответ - либо опции вывода cpuid, либо sgi_p, идентификаторы столбцов CPUID и P соответственно. <ч /> И 'CPU' должен работать в соответствии с этим примечанием в output.c, но в настоящее время он привязан к выводу 'nop'.

{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */

1 голос
/ 05 сентября 2018

Я сделал это таким образом на Arch, это может помочь кому-то там:

ps -C "process" -L -o pid,lwp,pcpu,cpuid,time
  • -C : выберите процесс с именем «process»
  • -L : список потоков процесса
  • -o : указать выходные данные
    • pid : идентификатор процесса
    • lwp : легкий процесс (нить)
    • pcpu : загрузка процессора (в процентах)
    • cpuid : идентификатор процессора
    • время : время резьбы (от начала)
...