brand new note

インフラエンジニアを目指す大学院生のメモ

Linuxのリソース確認コマンドについて

Linuxのリソース確認に関する個人的なまとめ。

細かい内容は随時追記します。

リソースって何

簡単に言うとコンピュータが計算とか命令をするための資源です。大まかにはメモリやCPU、ネットワークI/O(入出力)のことを指します。これらの使用率や処理速度を、Linuxディストリビューションではコマンドを打って確認することができるわけです。

何のために見ればいいのか

大まかには以下の理由が挙げられます。

  • 新しく中古で買ったノートPCに適当なイケてるOSを入れてスペックを確認したい!

  • PCやサーバの動作が重い時に何が原因なのかを切り分けたい!

  • リソース監視ってマシンを操ってる感じがしてイイ!


...真面目に言うとサービスが動いているサーバやコンピュータの調子を見るためにこういったコマンドでリソース不足がないかどうかを確認します。アプリケーションが暴走してCPU使用率が100%に貼り付いていたり、サービスがアクセス過多に陥ってネットワークI/Oがいっぱいいっぱいになったり、いらないプロセスが増えてメモリが圧迫されているのを観察できれば適切な対処ができます。

コマンド

オプションは他のサイトを参考にしてください。今のところはいったいこのコマンドはなんなのか、といった意味合いでの説明しかできませんので、そのへんの方の参考になればと思います。

mpstat

f:id:frazz:20180316122807p:plain CPU使用率を詳し目に見ることができます。CPUにはユーザモードとカーネルモードという動作モードがあって、idleが使われていない部分、userがユーザモード(ざっくりいうとOSやプロセスが使っている部分)、sysはカーネルシステムコールを発行している部分です。

vmstat

f:id:frazz:20180316123343p:plain メモリ、I/O、CPU使用率を簡単に見ます。表記が省略されてて逆に読みづらいので自分はあまり使ったことないです。

dstat

f:id:frazz:20180316124626p:plain 最初は入っていない場合があるのでyum install dstatで入れます。CPUやディスクI/O、ネットワークインターフェースのトラフィックを1秒毎に観測できます。画像では指定していませんが、インターフェースを指定したい場合は-iオプションとかつけます。

iftop

f:id:frazz:20180316130311p:plain これも最初は入っていない場合があるのでyum install iftopとかして入れます。画像では出ていませんが、ネットワークのインターフェースを指定するとリアルタイムにトラフィックIPアドレスと共に確認できます。右下の3つの数字は左から2,10,40秒間隔でのスループットの平均値になります。TXが送信、RXが受信です。

top

f:id:frazz:20180316130550p:plain CPU使用率、ロードアベレージ、プロセスの推移をリアルタイムで確認できます。実はリモートデスクトップをしたい場合に踏み台サーバでtopコマンドを動かしっぱなしにしておくと接続が切れない、といった小技としても使えます。

sar

f:id:frazz:20180316130854p:plain 何も指定しなければ直近のCPU利用率を10分間隔で出力します。-rオプションでメモリも確認できます。出力の時間間隔の設定やリアルタイム出力もオプションで指定可能です。

free

f:id:frazz:20180316131058p:plain メモリの空き領域を確認できます。totalが物理メモリの総量、availableが実質的に空いているメモリ量です。swapはスワップ領域で、ストレージの一部をメモリ領域に見立てた部分です。これは物理メモリとは異なります。メモリ不足が起きてしまったときに一時的にあふれた分の処理を行います。

参考

この記事だけ見て納得しても、もっと深い話が分からないと自分で実行した時に何の面白みも感じられないかもしれません。いろいろ記事や本を読んで理解を深めるといいかもです。自分も勉強中です。

qiita.com

medium.com

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識