1. 概要

このチュートリアルでは、Linuxマシンで使用可能なプロセッサまたはコアの数を確認する方法を見ていきます。 この目的で使用できるBashユーティリティとシステムファイルのいくつかを詳しく見ていきます。

2. lscpuユーティリティ

まず、lscpuコマンドのデフォルト出力を確認しましょう。

$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          8
On-line CPU(s) list:             0-7
Thread(s) per core:              2
Core(s) per socket:              4
Socket(s):                       1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           142
Model name:                      Intel(R) Core(TM) i5-10310U CPU @ 1.70GHz
...

ここで、 CPU(s)の値は、論理コアの数を示します。これは、出力の8と同じです。

The 論理コアの数は、「コアあたりのスレッド」×「ソケットあたりのコア」×「ソケット」に等しくなります。 との数マシン上の物理コアは、「ソケットあたりのコア」× 「ソケット」。

上記の出力に基づいて、マシンに 4 物理コアがあり、ハイパースレッディングが有効になっているため(「コアあたりのスレッド」2に等しいと推測できます。 ])、8論理コアを取得します。

コマンドをチェックして、マシン上の物理コアの数を直接取得しましょう

$ lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l
4

ここでは、 -p オプションを使用して、「コア」列と「ソケット」列のみを解析しています。 それに加えて、 -b オプションを使用して、出力をオンラインCPUのみに制限しています。

3. / proc /cpuinfoファイル

lscpu ユーティリティは、その情報を / proc / cpuinfoファイルから取得します。このファイルには、すべての論理コアまたはプロセッサのプロセッサに関する情報が含まれています。

$ cat /proc/cpuinfo  | egrep "processor|core id"
processor       : 0
core id         : 0
processor       : 1
core id         : 0
processor       : 2
core id         : 1
processor       : 3
core id         : 1
processor       : 4
core id         : 2
processor       : 5
core id         : 2
processor       : 6
core id         : 3
processor       : 7
core id         : 3

したがって、 / proc / cpuinfo ファイルの内容に基づいて、マシン上の論理コアの数を取得しましょう。

$ grep --count ^processor /proc/cpuinfo
8

さらに、一意のコアIDの数をカウントして、マシン上の物理コアの数を取得することもできます

$ grep ^"core id" /proc/cpuinfo | sort -u | wc -l
4

4. その他の選択肢

プロセッサ情報を取得するために使用できるコマンドは他にもいくつかあります。 見てみましょう。

4.1. nprocコマンド

nproc ユーティリティを使用して、システムで使用可能なプロセッサの数を確認しましょう。

$ nproc --all
8

ここでは、 –all オプションを使用して、インストールされているプロセッサの数を出力しました。

4.2. getconfを使用したクエリ

getconf コマンドを使用して、構成されたプロセッサー値を照会できます。

$ getconf -a | grep PROCESSORS
_NPROCESSORS_CONF                  8
_NPROCESSORS_ONLN                  8

この場合、 -a オプションは、システムのすべての構成変数とその値を一覧表示します。 または、プロセッサ関連のパラメータのみをクエリすることもできます。 それでは、構成されているプロセッサーの数を確認しましょう。

$ getconf _NPROCESSORS_CONF
8

そして、オンラインのプロセッサの数:

$ getconf _NPROCESSORS_ONLN
8

5. 結論

この記事では、Linuxマシンのコア数を取得するさまざまな方法について説明しました。

まず、Bashのlscpuユーティリティを紹介しました。 さらに、その出力を解釈して、物理コアと論理コアの数を計算する方法を学びました。 また、コマンドをチェックして、マシンの物理および論理プロセッサ数を直接取得しました。

次に、 / proc /cpuinfoファイルから同じ情報を取得する方法を検討しました。 最後に、nprocおよびgetconfコマンドを使用してCPUコア情報を取得する方法についても検討しました。