「Linux」システムの速度低下の原因特定に役立つコマンド5選
今回は「「Linux」システムの速度低下の原因特定に役立つコマンド5選」についてご紹介します。
関連ワード (Linuxノウハウ、特集・解説等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
「Linux」デスクトップの動作が遅くなることはめったにない。しかし、絶対に起きないと言えば、うそになる。システムの速度が低下しても、ほとんどの場合、筆者は問題を引き起こしている特定のアプリケーションを突き止めることができる(「VirtualBox」が原因であることが多い)。ただし、ハードドライブのボトルネックに起因する問題を経験したこともある。
本記事では、いくつかのコマンドを使用して、ハードウェア関連のボトルネックを特定する方法を紹介する。
このコマンドは、デバイスとパーティションの両方について、CPUとI/O(入出力)の統計情報を報告する。iostatを使用すると、デバイスがアクティブな時間を平均転送速度と比較して監視することで、デバイスの負荷を監視できる。このコマンドが生成するレポートは、システムを設定して、最適なパフォーマンスを引き出したいときに役立つ。iostatには、重視すべき3つの項目がある。
注意点が1つある。iostatはすべてのデバイス(ループバックも含む)を表示する。ほとんどの場合、注意すべきなのは、nvme、sdX(Xは文字)、zramといったタイプのデバイスだ。
iostatは、デフォルトではシステムにインストールされていない可能性がある。インストールされていない場合は、以下のようなコマンドで「sysstat」アプリケーションをインストール可能だ。
iotopコマンドはiostatに似ているが、静的なレポートではなく、リアルタイムのレポートを生成する。iotopはtopコマンドに似ているが、topがソフトウェアとサービスに関する統計情報を表示するのに対し、iotopはプロセスとディスクアクティビティーを表示する。過剰なシステムリソースを使用しているプロセスがある場合、そのプロセスが問題を引き起こしている可能性が高い。
iotopアプリケーションは、sudo権限で実行する必要がある。実行すると、「TID」(スレッドID)、「PRIO」(プロセス優先度)、「User」(ユーザー)、「Disk Read」(ディスク読み取り速度)、「Disk Write」(ディスク書き込み速度)、「SwapIn」(スワップイン)、「IO Priority」(IO優先度)、「Command」(コマンド)の列が表示される。確認すべき最も重要な3つの情報は、「Disk Read」「Disk Write」「IO Priority」だ。「Disk Read」や「Disk Write」の値が高いプロセスがある場合は、それが問題の原因である。多くのI/Oリソースを使用しているプロセスがある場合は(「IO Priority」)、ioniceコマンドを使用して(プロセスのI/Oスケジューリングクラスと優先度を設定または取得するため)、そのプロセスの優先度を調整した方がいいだろう。
UbuntuまたはFedoraベースのディストリビューションにiotopをインストールするには、以下のコマンドを使用する。
dstatもシステムリソース(特にディスクI/O)の使用状況を監視するためのコマンドだ。iostatと同じくらい詳細な情報を、iotopのようにリアルタイムに報告するという点で、dstatはiotopとiostatを組み合わせたようなコマンドである。確認すべき最も重要な情報は、「Disk Read/Write」(ディスク読み取り/書き込み)(一貫して大量のアクティビティーがある場合は、それが問題の原因かもしれない)と「Disk Await」(ディスクの待ち時間:個々のI/O操作が完了するまでの時間。数値が高い場合は、ボトルネックが発生している)だ。
UbuntuまたはFedoraベースのディストリビューションにdstatをインストールするには、以下のコマンドを使用する。
オプションを使用して、dstatが表示する情報を絞り込むと便利だ。例えば、CPUの統計情報だけを表示させたい場合は、以下のコマンドを実行する。
ディスクの統計情報だけを表示させたい場合は、以下のコマンドを実行する。
sarコマンドもsysstatと一緒にインストールされ、システムアクティビティーに関する情報を収集、レポート、保存する。sarコマンドは、オプションを使用する必要があるため、これまでに紹介したコマンドよりも少し複雑だ。例えば、ポーリング間隔が2秒のCPU統計情報を3つ表示させたい場合、コマンドは以下のようになる。
上記のコマンドは、CPU統計情報を3つ表示した後、平均を示す4つ目の統計情報を表示する。出力には以下のものが含まれる。
特定のコアに問題があると思われる場合は、以下のように番号を指定してテストできる。
-Pオプションの後に、テストしたいコアの番号を指定する。
ハードドライブの状態を確認したい場合は、smartctlコマンドを使用するといいだろう。smartctlのレポートには、特に注意すべき2つの情報がある。
Linuxシステムのボトルネックの原因特定に役立つ5つのコマンドの紹介は、以上である。manコマンド(man smartctl、man sar、man dstat、man iotop、man iostat)を実行して、それぞれのコマンドの詳細を必ず確認してほしい。