Есть ли в Linux какая-либо команда для определения, какой процесс запущен? Я заинтересован в выяснении загруженности процессора и времени простоя этого процессора.
3 ответа
Вы можете использовать команду ps
для запроса и отображения активного процессора. Например, вы можете запустить:
$ 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
Столбец PSR
показывает, что init
работает на процессоре 1, а ps
- на процессоре 0. Смотрите man-страницу для ps(1) для более подробной информации о том, как настроить отображаемые поля.
Вы можете настроить графический инструмент, такой как htop
для отображения текущего активного процессора. Кроме того, htop
имеет график отображения нагрузки на процессор, который может быть тем, что вы ищете. См., Например, следующий скриншот с http://htop.sourceforge.net/.
Наконец, вы можете использовать инструмент taskset
, чтобы принудительно установить связь с конкретным процессором.
Есть много способов узнать. htop, top, ps.
HTOP
- протестированная версия: 1.0.2
URL: http://htop.sourceforge.net/
- Нажмите F2, чтобы войти в окно настройки
- выберите Столбцы в столбце Настройка
- Перейти Доступные столбцы
- добавить ПРОЦЕССОР
- Проверьте столбец процессора
Топ
- протестированная версия: procps 3.3.8
URL: http://gitorious.org/procps
- Нажмите f, чтобы попасть в окно управления полями.
- Выберите P (последний использованный процессор)
вот пример с последним столбцом 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
п.с.
- протестированная версия: procps 3.3.8
- URL: http://gitorious.org/procps
PSR - это КОД для отображения идентификатора процессора. Вы можете использовать опцию формата как ps -o pid,psr
или просто сделать ps -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]
Я просто цитирую содержание man ps:
psr сообщит вам процессор, на котором запущен или запущен процесс. pcpu сообщит вам процент процессорного времени, затраченного процессом.
ps -eo pid, tid, class, rtprio, ni, pri, psr, pcpu, stat, wchan:14, комм
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
BSD стиль:
ps axo stat, euid, ruid, tty, tpgid, sess, pgrp, ppid, pid, psr, pcpu, comm