「nproc」が「nproc --all」より少ないコンテンツを表示するのはなぜですか?

「nproc」が「nproc --all」より少ないコンテンツを表示するのはなぜですか?

これは、インターネット上で見つかったnprocvsやその他のコマンドの出力です。nproc --all私はまだなぜそれを理解していません。 CentOS 6.5 およびその他の CentOS 6.5 を実行する QEMU\KVM VM。

以下は他のコマンドの出力です。

[root@h1-nms ~]# nproc
1
[root@h1-nms ~]# nproc --all
3
[root@h1-nms ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                3
On-line CPU(s) list:   0-2
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             3
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 13
Stepping:              3
CPU MHz:               2194.710
BogoMIPS:              4389.42
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0-2
[root@h1-nms ~]# getconf _NPROCESSORS_ONLN
3
[root@h1-nms ~]# cat /proc/$$/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            10485760             unlimited            bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             32000                32000                processes
Max open files            64000                64000                files
Max locked memory         65536000             65536000             bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       191509               191509               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us
[root@h1-nms ~]# grep "" /sys/devices/system/cpu/cpu*/online
/sys/devices/system/cpu/cpu1/online:1
/sys/devices/system/cpu/cpu2/online:1
[root@h1-nms ~]# uname -a
Linux h1-nms 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@h1-nms ~]# cat /etc/*-release
CentOS release 6.5 (Final)
CentOS release 6.5 (Final)
CentOS release 6.5 (Final)
[root@h1-nms ~]#

ベストアンサー1

に示すように先行は達成するのが難しい~の回答nproc現在のプロセスで使用可能なCPUの数とCPUの総数を区別します。

Linux システムで OpenMP が関係していない場合、現在のプロセスで使用可能な CPU は、プロセスのアフィニティマスクによって決定されます。これを確認するには、以下を実行してくださいtaskset

taskset -p $$

またはschedtool:

schedtool $$

tasksetパッケージの一部util-linuxなので、デフォルトでインストールする必要があります。それはschedtoolそれ自身のパッケージなので、使用するためにインストールする必要があるかもしれません。)

あなたの場合、これはシェルが単一のプロセッサに制限されていることを示します。これはnproc出力です1

おすすめ記事