リナックス豆知識

Linuxのシステム構成情報を確認する

投稿者情報

  • 運営局 投稿
  • 投稿日

コンテンツ情報

本文内容

システムの問題点を分析、確認するために、現在のシステムの構成情報を確認しないといけない場合がある。
現在使用中のカーネルのバージョンと、システム起動の時使用したカーネル、パラメータおよび
ハードウェアのCPUとメモリは、何をを使用するのかなどの情報をキャッチした上でカーネルのバグはないか、ハードウェアの問題はないことを確認することができる。

 

1. カーネル情報を確認

 

カーネルのバージョンを確認する方法はいろいろある。
代表的な方法で'uname -a'コマンドを入力すると、カーネルのバージョンに関する情報が出てくる。

[root@localhost ~]# uname -a
Linux localhost.localdomain 4.18.0-193.19.1.el8_2.x86_64 #1 SMP Mon Sep 14 14:37:00 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

dmesg コマンドは、

カーネルのデバッグメッセージでカーネルが起動されたときに表示されるメッセージと運用中に発生するメッセージを表示できるようにするコマンドである。

このコマンドでカーネルがメモリを認識する過程と、ハードウェアを認識してドライバを立ち上げる過程、起動時に適用されたカーネルパラメータなどを確認することができる。

[root@localhost ~]# dmesg | grep -i kernel | more
Command line : ro root=UUID=3e7b88fa-c176-4c82-b309-c74eea5752e0
intel_idle.max_cstate=0 crashkernel=auto biosdevname=0 console=tty0
console=ttyS①
Reserving 129MB of memory at 48MB for crashkernel (System RAM : 9216MB)②
Memory : 32834356k/3407816k available (5428k kernel code, 534728k absent,
709632k reserved, 6982k data, 1300k init)③

①カーネルが起動の時、使用したカーネルパラメータを意味する。いくつかのモジュールのオプションを設定することができ、起動の時のみ適用されるモジュールもある。この例では、intel_idle.max_cstate、crashkernel、biosdevname、consoleまでTOTAL4つのパラメータが適用された。このメッセージは、dmesgだけでなく、/ procファイルシステムを利用して確認することも可能である。

②このメッセージは、crashkernelに関するイメージをロードしたという意味である。カーネルは、さまざまな理由でカーネルパニック状態に陥ることもある。カーネルパニック状態に陥ると、ユーザーの入力を受け入れることができなくなる。この時、crashkernelを設定しておけば、カーネルパニックに陥るときcrashkernelをロードしてパニックに陥ったカーネルのデバッグ情報を保存する。これにより、カーネルの問題が発生した際に追跡することができる。

③起動の時にカーネルが認識しているメモリの情報を意味する。物理的なメモリのサイズと、実際に使用可能なメモリのサイズを示す。ここで確認した使用可能なメモリと、起動が完了した後、freeコマンドを使用して確認するメモリの量が少し違うが、それは起動過程で使用されるメモリの一部が起動完了後に返されるからである。

 

intel_idle.max_cstate


最近使用されるCPUにはC-Stateというオプションがあり、特別な作業がないidle状態になると、一部のCPUコアをスリープモードに転換させる。
これにより、コアが多く必要としないときに電力を節約することができる。
しかし、突然、多くのコアが必要な場合には、例えば、トラフィックやユーザーの要求が急激に増加した場合には、スリープモードのコアを稼働させないといけないのでパフォーマンスの低下が発生することになる。
なので、場合によっては、C-stateオプションをオフにするべきだが、このオプションは、起動時にハードウェアのBIOS設定で設定する。
しかし、ハードウェアのBIOS設定で該当オプションをオフ状態でもソフトウェアモジュールによってオンになる場合があるが、それはintel_idleモジュールのせいでそのようになるわけだ。
このモジュールは、ハードウェアのBIOS設定とは関係なく、C-Stateモードで動作するようにする。
だから、ハードウェアのBIOS設定で、C-stateを切ってもintel-idleモジュールによってCPUが作業状態に応じて
適切なC-state状態に陥ることになる。
このような現象を避けるために、起動の時にパラメータとしてintel_idleモジュールを使用しないように設定することが必要である。

 

カーネルのコンパイル情報を確認する。


dmesgを利用して確認するカーネルの情報以外、現在使用中のカーネルのコンパイルオプションも確認する必要がある。カーネル機能の中、コンパイルオプションに含まれて利用できる機能があるからだ。

ftraceのようにカーネル関数レベルの追跡が必要な場合には、CONFIG_FUNCTION_TRACERのようないくつかのオプションがコンパイルオプションに含まれなければならない。

root# cat /boot/config-uname -r| grep -i config_function_tracer CONFIG_FUNCTION_TRACER=y

 

関連資料

新着投稿


  • 投稿がありません。

新着書込み


  • 書込みがありません。
アラート 0