回答:
nproc
あなたが探しているものです。
詳細:http : //www.cyberciti.biz/faq/linux-get-number-of-cpus-core-command/
nproc
ubuntu VMにはありますが、RedHat 5.5ベースのマシンにはありません。
nproc --all
インストールされているすべてのプロセッシングユニットを確認してください。なし--all
でnproc
は、現在のプロセスで使用可能な処理装置のみが表示されます。詳細については、manページをお読みください。MMV。
最も単純なツールはglibcに付属していて、次のように呼ばれgetconf
ます。
$ getconf _NPROCESSORS_ONLN
4
nproc
、これはMac OS Xで(デフォルトで)機能します。
_NPROCESSORS_ONLN
(またはcpu、procなどのすべての)出力にリストされます。Linux / Solarisで動作するposixツールであることを期待していたので、ブランチを使用する必要はありませんでした。
LinuxとOS Xで機能するようにこれを行う場合は、次のようにできます。
CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)
psrinfo -p
では代わりに使用する必要があります
新しいカーネルでは、/sys/devices/system/cpu/
インターフェイスを使用してもう少し情報を取得することもできます。
$ ls /sys/devices/system/cpu/
cpu0 cpufreq kernel_max offline possible present release
cpu1 cpuidle modalias online power probe uevent
$ cat /sys/devices/system/cpu/kernel_max
255
$ cat /sys/devices/system/cpu/offline
2-63
$ cat /sys/devices/system/cpu/possible
0-63
$ cat /sys/devices/system/cpu/present
0-1
$ cat /sys/devices/system/cpu/online
0-1
これらの意味の詳細については、公式ドキュメントを参照してください。
online
nprocが行うよりも単純なファイル)にも依存しています
誰かが「プロセッサ/コアの数」を尋ねると、2つの回答が要求されます。「プロセッサ」の数は、マシンのソケットにインストールされている物理的な数になります。
「コア」の数は物理コアになります。ハイパースレッド(仮想)コアは含まれません(少なくとも私の考えでは)。スレッドプールを使用して多くのプログラムを作成する人は、物理コアとコア/ハイパースレッドの数を知る必要があります。つまり、次のスクリプトを変更して、必要な答えを得ることができます。
#!/bin/bash
MODEL=`cat /cpu/procinfo | grep "model name" | sort | uniq`
ALL=`cat /proc/cpuinfo | grep "bogo" | wc -l`
PHYSICAL=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
CORES=`cat /proc/cpuinfo | grep "cpu cores" | sort | uniq | cut -d':' -f2`
PHY_CORES=$(($PHYSICAL * $CORES))
echo "Type $MODEL"
echo "Processors $PHYSICAL"
echo "Physical cores $PHY_CORES"
echo "Including hyperthreading cores $ALL"
ハイパースレッディングもサポートする2つのモデルXeon X5650物理プロセッサーを搭載し、それぞれに6つの物理コアを搭載したマシンでの結果:
Type model name : Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
Processors 2
Physical cores 12
Including hyperthreading cores 24
ハイパースレッディングをサポートしない4つの物理コアをそれぞれ搭載した2つのmdeol Xeon E5472プロセッサーを搭載したマシン
Type model name : Intel(R) Xeon(R) CPU E5472 @ 3.00GHz
Processors 2
Physical cores 8
Including hyperthreading cores 8
lscpu(1)
が提供するコマンドのutil-Linuxのプロジェクトも有用かもしれません。
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
Stepping: 9
CPU MHz: 3406.253
CPU max MHz: 3600.0000
CPU min MHz: 1200.0000
BogoMIPS: 5787.10
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 4096K
NUMA node0 CPU(s): 0-3