カーネルとデバイスの確認
今回は、カーネルに纏わる各種リソースの確認方法について解説します。【連載コラム:Linuxシステム管理標準教科書を読む(18)】
Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。
カーネルはCPUやメモリー、各種デバイスなどの制御を司り、ユーザーが動作させるプロセスに対してそれらのリソースを提供します。今回は、カーネルに纏わる各種リソースの確認方法について解説します。
CPUの情報取得
CPUの情報は、/proc/cpuinfoという仮想ファイルを参照することで取得出来ます。/procディレクトリはディスク上に存在するのではなく、カーネルが制御している各種リソースに対して仮想ファイルとしてアクセスできるようにした特殊なファイルシステムです。
$ cat /proc/cpuinfo
processor : 0
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp flagm2 frint
CPU implementer : 0x61
CPU architecture: 8
CPU variant : 0x0
CPU part : 0x000
CPU revision : 0
processor : 1
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp flagm2 frint
CPU implementer : 0x61
CPU architecture: 8
CPU variant : 0x0
CPU part : 0x000
CPU revision : 0
このように、CPUが2つあることや、各種CPUの機能がFeaturesに表記されます。
BogoMIPSとは
cpuinfoにあるBogoMIPSとは、CPUの性能を示す指標の一種です。一秒間に行える無意味な計算の回数といったような説明がなされています。厳密なベンチマークに基づいて定義された指標ではないので、あくまでそういうものがある、ぐらいに捉えておけばよいでしょう。
メモリーの状態を確認する
メモリーの状態を確認する方法はいくつかありますが、一番簡単なのはfreeコマンドの実行です。
$ free
total used free shared buff/cache available
Mem: 1678032 651044 576928 11556 549140 1026988
Swap: 2097148 0 2097148
KB単位だと少し分かりにくいので、-mオプションをつけるとMB単位にできます。
$ free -m
total used free shared buff/cache available
Mem: 1638 635 563 11 536 1002
Swap: 2047 0 2047
メモリが1.6GB、スワップ領域が2GBありますが、使用しているのが600MB強なのでスワップ領域は使用していない状態であることがわかります。
PCIデバイスを確認する
PCI(Peripheral Component Interconnect)はコンピューター内の各種デバイスを「バス」と呼ばれるもので相互に接続する仕組みです。lspciコマンドで、PCIで接続された各種デバイスを確認できます。
$ lspci
00:00.0 Host bridge: VMware Device 1976 (rev 01)
00:00.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware Device 0406
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
(省略)
01:00.0 USB controller: VMware USB1.1 UHCI Controller
01:01.0 Audio device: VMware HD Audio Controller (rev 09)
01:02.0 USB controller: VMware USB2 EHCI Controller
01:03.0 SATA controller: VMware SATA AHCI controller
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
0a:00.0 USB controller: VMware Device 077a
12:00.0 Non-Volatile memory controller: VMware NVMe SSD Controller
グラフィックカードやUSBコントローラー、オーディオコントローラー、SATAコントローラーにネットワークインターフェースなど、各種デバイスがPCIで接続されていることが分かります。逆に、このリストに表示されないと正常に接続されていない、認識されていないということになります。
USBデバイスを確認する
USBは、簡単にデバイスを接続したり切断したりすることができるので、各種デバイスを接続するインターフェースとして使用されています。接続されているUSBデバイスを確認するには、lsusbコマンドを使用します。
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0e0f:000b VMware, Inc. VMware Virtual USB Video Device
Bus 001 Device 003: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 004: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 005: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 006: ID 0e0f:0006 VMware, Inc. Virtual Keyboard
Bus 001 Device 007: ID 0499:1757 Yamaha Corp. Yamaha AG06MK2
Bus 001 Device 008: ID 152a:8750 Thesycon Systemsoftware & Consulting GmbH D90
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
この環境はVMwareの仮想マシンとして実行しているので、マウスやキーボードは仮想デバイスとして認識されています。それ以外にオーディオ関係のデバイスが接続されている様子が確認できます。
まとめ
以前に比べて、Linuxカーネルがハードウェアを認識し、使用可能になるように適切なデバイスドライバーを自動的にロードしてくれるため、ハードウェアの構成や設定で悩むことは少なくなりましたが、デバイスの故障などで認識されなくなった時のトラブルシューティングとして、今回解説したようなハードウェアを直接参照するコマンドは有用です。是非、色々な環境で実行して、どのようにハードウェアが認識されているか確認し、コマンドの使用に慣れておいてください。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
<Linuxシステム管理標準教科書とは>
「Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。
バックナンバー
第17回:カーネルの起動
第16回:新しいディストリビューションでのGRUBの取り扱い
第15回:DHCPについて
第14回:firewalldによるパケットフィルタリングの設定
第13回:パケットフィルタリングについて