当我运行命令时
$ nproc --all
4
描述 打印当前进程可用的处理单元数量,该数量可能小于在线处理器数量
它陈述了current process
和的概念online processors
,
如果使用ps,则输出13个进程
$ ps | sed '1d' | nl
1 363 ttys000 0:01.09 -bash
2 12779 ttys000 0:00.00 sed 1d
3 12780 ttys000 0:00.00 nl
4 12781 ttys000 0:00.00 sed s/me/me/g
5 397 ttys001 0:00.26 -bash
6 10088 ttys001 0:00.01 man bg
7 10089 ttys001 0:00.01 sh -c (cd '/usr/share/man' && (echo ".ll 10.2i"; echo ".nr LL 10.2i"; /bin/cat '/usr/share/man/man1/builtin.1') | /usr/bin/tbl | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | (/usr/bin/less -is || true))
8 10090 ttys001 0:00.01 sh -c (cd '/usr/share/man' && (echo ".ll 10.2i"; echo ".nr LL 10.2i"; /bin/cat '/usr/share/man/man1/builtin.1') | /usr/bin/tbl | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | (/usr/bin/less -is || true))
9 10095 ttys001 0:00.00 sh -c (cd '/usr/share/man' && (echo ".ll 10.2i"; echo ".nr LL 10.2i"; /bin/cat '/usr/share/man/man1/builtin.1') | /usr/bin/tbl | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | (/usr/bin/less -is || true))
10 10096 ttys001 0:00.01 /usr/bin/less -is
11 374 ttys002 0:00.21 -bash
12 438 ttys003 0:00.28 -bash
13 9965 ttys003 0:13.74 /Users/me/anaconda3/bin/python /Users/me/anaconda3/bin/ipython
在线处理器是什么意思?是否nproc
有 ps 无法替代的特殊用法
答案1
nproc 列出了您可用的 CPU 数量。
ps 列出当前使用这些 CPU 的应用程序。
CPU 可能会被限制为特定用户使用,或者出于散热、电源或其他目的而动态关闭,从而使其无法供您使用。
存在虚拟 CPU 和其他复杂情况(使进程和处理器这两个术语更加准确),但这就是简短的答案。