Czy w systemie Linux jest polecenie, aby poznać numer procesora, w którym ładowany jest proces?

26

Czy w Linuksie jest jakieś polecenie, aby dowiedzieć się, biorąc pod uwagę proces, który procesor działa? Interesuje mnie ustalenie zajętości procesora i czasu bezczynności tego procesora.

kumar
źródło

Odpowiedzi:

32

Możesz użyć tego pspolecenia do zapytania i wyświetlenia aktywnego procesora. Na przykład możesz uruchomić:

$ ps -aF
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  5971  1764   1 Sep15 ?        00:00:01 /sbin/init
ubuntu   28903  2975  0  3826  1208   0 09:36 pts/0    00:00:00 ps -aF

Te PSRpokazy kolumny, która initjest uruchomiony na procesorze 1 i psjest uruchomione na procesorze 0. Zobacz manpage dla PS (1) aby uzyskać więcej informacji na temat dostosowywania pól, które są wyświetlane.

Możesz skonfigurować narzędzie graficzne, takie jak htopwyświetlanie bieżącego aktywnego procesora. Ponadto htopma wykres wyświetlania obciążenia na procesor, który może być tym, czego szukasz. Zobacz na przykład następujący zrzut ekranu z http://htop.sourceforge.net/ .

zrzut ekranu

Na koniec możesz użyć tego tasksetnarzędzia, aby wymusić powinowactwo do określonego procesora.

Emil Sit
źródło
Należy pamiętać, że (chyba że użyto zestawu zadań do ustawienia powinowactwa tylko do jednego procesora), informacje te mogą być nieaktualne przed wygenerowaniem wyświetlacza, nie mówiąc już o czasie jego czytania.
Jamie Hanrahan
26

Istnieje wiele sposobów, aby się dowiedzieć. htop, top, ps.

htop

  • wersja testowana: 1.0.2
  • URL: http://htop.sourceforge.net/

    1. Naciśnij F2, aby przejść do okna konfiguracji
    2. wybierz Kolumny w kolumnie Ustawienia
    3. idź Dostępne kolumny
    4. dodaj PROCESOR htop wybierając procesor
    5. Sprawdź kolumnę CPU htop z kolumną procesora

Top

  • wersja testowana: procps 3.3.8
  • URL: http://gitorious.org/procps

    1. Naciśnij f, aby przejść do okna Zarządzanie polami
    2. Wybierz P (ostatnio używane procesory)

oto przykład z ostatnią kolumną P

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   P 
 5626 yashi     20   0 1926276 545964  47596 R  12.6  3.4 151:10.81 gnome-sh+ 2 
 5347 root      20   0  384788  73600  55708 S   8.7  0.5  55:10.09 Xorg      1 
 8125 yashi     20   0  646240  30776  21928 S   4.3  0.2  23:06.20 gnome-sy+ 0 
 1785 yashi     20   0  581180  29288  15560 R   4.0  0.2   0:25.55 gnome-te+ 1

ps

PSR to KOD, aby wyświetlić identyfikator procesora. Możesz użyć opcji formatu, jak ps -o pid,psrlub po prostups -eF

$ ps -eF|head
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0  3817   964   0 Aug14 ?        00:00:02 init [2]  
root         2     0  0     0     0   2 Aug14 ?        00:00:00 [kthreadd]
root         3     2  0     0     0   0 Aug14 ?        00:00:11 [ksoftirqd/0]
root         5     2  0     0     0   0 Aug14 ?        00:00:00 [kworker/0:0H]
root         7     2  0     0     0   0 Aug14 ?        00:00:00 [migration/0]
root         8     2  0     0     0   0 Aug14 ?        00:00:00 [rcu_bh]
root         9     2  0     0     0   3 Aug14 ?        00:00:39 [rcu_sched]
root        10     2  0     0     0   0 Aug14 ?        00:00:00 [watchdog/0]
root        11     2  0     0     0   1 Aug14 ?        00:00:00 [watchdog/1]
Yasushi Shoji
źródło
1

Cytuję zawartość ps ps:

psr poinformuje procesor, na którym proces jest uruchomiony lub uruchomiony. pcpu powie ci procent czasu procesora zużytego przez proces.

ps -eo pid, tid, class, rtprio, ni, pri, psr , pcpu , stat, wchan: 14, comm

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm | tail
 9847  9847 TS       -   0  19   2  0.0 S    -              kworker/2:0
10061 10061 TS       -   0  19   2  0.6 Sl   futex_wait_que chrome
10208 10208 TS       -   0  19   3  0.0 S    -              kworker/3:3
10247 10247 TS       -   0  19   1  0.0 S    -              kworker/1:1
10381 10381 TS       -   0  19   1  4.6 Sl   futex_wait_que chrome
10452 10452 TS       -   0  19   0  0.0 S    -              kworker/0:1
10491 10491 TS       -   0  19   0  0.5 Sl   futex_wait_que chrome
10504 10504 TS       -   0  19   2  0.0 S    -              kworker/2:1
10505 10505 TS       -   0  19   0  0.0 R+   -              ps
10506 10506 TS       -   0  19   3  0.0 S+   pipe_wait      tail

Styl BSD:

ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, psr , pcpu , comm

firo
źródło
To jest trochę tajemnicze. Czy potrafisz rozszerzyć swoją odpowiedź, aby wyjaśnić, co to jest i jak wykorzystać ją do rozwiązania problemu? z recenzji
fixer1234 30.03.17