質問:
プロセッサの数について 2 つの異なる情報が存在する原因は何でしょうか。以下のレポートを参照してください。
システムダイアログ:
システム設定/詳細タブ (ログアウトホイールやこのコンピューターについてと同じ) を開くと、次のことが報告されます。
プロセッサー: Intel® Xeon(R) CPU E5-2680 v3 @ 2.50GHz × 16
CLI: cpuinfo (1)
それでも、コマンドラインコマンドを使用すると、次のようになります。
$ cat /proc/cpuinfo | grep processor | wc -l
24
私はコマンド ライン レポートを信じる傾向がありますが、その違いの原因は何でしょうか?
参考までに:システムモニターには24コアの統計も表示されます
CLI: cpuinfo (2)
コメントで提案されたように、次のコマンドラインも実行しました
$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12
これで 3 番目の結果も出ました。マシンに 2 つのプロセッサを持つ 12 個のコアがある可能性があるので、これは理にかなっています。しかし、システム ダイアログが 16 をカウントするのはなぜでしょうか。
答え1
CPUコアは対称型マルチプロセッシング(スムム)。
インテル Core 2 Duo物理的なレイアウトを示す図。
システムの CPU 情報は/proc
ディレクトリに保存されます。ソフトウェアによって以下のようにわかりやすく表示されますlscpu
。比較のために、CPU コアが 2 つのデスクトップ、48 個のサーバー、4 個の Raspberry Pi の 3 つの例を示します。
デスクトップコンピューター ユーザー@ホスト名:~$ lscpu アーキテクチャ: x86_64 CPU オペレーションモード: 32 ビット、64 ビット バイトオーダー: リトルエンディアン CPU: 2 オンラインCPUリスト: 0,1 コアあたりのスレッド数: 1 ソケットあたりのコア数: 2 ソケット: 1 NUMA ノード: 1 ベンダー ID: GenuineIntel CPUファミリー: 6 モデル: 60 歩数: 3 CPU MHz: 800.000 ボゴMIPS: 5586.94 仮想化: VT-x L1d キャッシュ: 32K L1i キャッシュ: 32K L2キャッシュ: 256K L3 キャッシュ: 2048K NUMA ノード0 CPU: 0,1 サーバ ユーザー@ホスト名% lscpu アーキテクチャ: x86_64 CPU オペレーションモード: 32 ビット、64 ビット バイトオーダー: リトルエンディアン CPU: 48 オンライン CPU リスト: 0-47 コアあたりのスレッド数: 2 ソケットあたりのコア数: 12 ソケット: 2 NUMA ノード: 1 ベンダー ID: GenuineIntel CPUファミリー: 6 モデル: 62 ステップ数: 4 CPU MHz: 1799.724 ボゴMIPS: 3600.09 仮想化: VT-x L1d キャッシュ: 32K L1i キャッシュ: 32K L2キャッシュ: 256K L3キャッシュ: 30720K NUMA ノード0 CPU: 0-47 ラズベリーパイ ジェフ@clear-pi:~ $ lscpu アーキテクチャ: armv7l バイトオーダー: リトルエンディアン CPU: 4 オンライン CPU リスト: 0-3 コアあたりのスレッド数: 1 ソケットあたりのコア数: 4 ソケット: 1 モデル名: ARMv7 プロセッサ rev 5 (v7l) CPU 最大 MHz: 900.0000 CPU 最小 MHz: 600.0000
サーバー合計は 48 ですが、そこに到達するには 3 つの数字を掛け合わせる必要があります。2*12*2=48。このように比較するとCPUメーカーの配置の違いが明らかになります。
デスクトップ [コアあたりのスレッド数: 1] * [ソケットあたりのコア数: 1] * [ソケット数: 1] = 2 サーバ [コアあたりのスレッド数: 2] * [ソケットあたりのコア数: 12] * [ソケット数: 2] = 48 ラズベリーパイ [コアあたりのスレッド数: 1] * [ソケットあたりのコア数: 4] * [ソケット数: 1] = 4
lshw
より多くのシステム情報がありますが、ここではそれほど役に立ちません。
デスクトップコンピューター ユーザー@ホスト名:~$ sudo lshw *-CPU 説明: CPU 製品: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz ベンダー: Intel Corp. 物理ID: 9 バス情報: cpu@0 バージョン: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz スロット: ソケット 0 サイズ: 2800MHz 容量: 3800MHz 幅: 64 ビット クロック: 100MHz サーバ ユーザー@ホスト名% sudo lshw *-CPU:0 説明: CPU 製品: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz ベンダー: Intel Corp. 物理ID: 4 バス情報: cpu@0 バージョン: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz スロット: ソケット 0 サイズ: 1800MHz 容量: 4GHz 幅: 64 ビット クロック: 100MHz ラズベリーパイ ユーザー@ホスト名:~ $ sudo lshw *-CPU:0 説明: CPU 製品: CPU 物理ID: 0 バス情報: cpu@0 サイズ: 900MHz 容量: 900MHz 機能: cpufreq
最後に、この方法は、lscpu が利用できないいくつかの異なる Linux/UNIX オペレーティング システムで機能しました。これは質問とコメントで提案されたもののバリエーションですが、私は短縮コマンドとシンプルな出力を好みます。
user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4
参照:仮想を含む CPU コアの数を確認するにはどうすればよいでしょうか?
参照:https://stackoverflow.com/questions/6481005/linux のコマンドラインから CPU コア数を取得する方法
参照:https://stackoverflow.com/questions/19225859/coreとprocessorの違い