PCの負荷状況を調べる方法
PCの負荷状況を調べる
PCが妙に重いときとか、パフォーマンスのチューニングをしたいときに、何にリソースを使っているのか確認したいときのコマンドです。
想定としては、インフラ系とかをしている人ではなく、ユーザーとかアプリの開発者を想定しています(なので詳しいオプションとか解析方法は書いてないです)。
PCとしてはLinux(特にUbuntu)とMac OSに関して書いていますが、メインはLinuxです。
たまーに、ここらへんのコマンドを調べ直すこと多いのでまとめてみました。
以下の書籍も参考(きっかけ)にしています。
Interface(インターフェース) 2023年 02 月号
この記事はコマンド列挙しているだけですが、使い方や解析方法より詳しく知りたい方は、上記書籍など購入することをオススメします。
全体の負荷調査
topコマンド(Linux/Mac)
とりあえず使うやつ。全体の負荷を見通せます。コマンドは以下です。
$ top
Shiftキーと組み合わせると、並び順を変えることができます。
例えばShift + c
だとCPU負荷順。Shift + m
だとメモリ負荷順です。
Shift + u
でユーザー指定もできます。
vmstatコマンド(Linux)
システム全体の負荷をみれます。以下コマンドで1秒ごとにモニタリングできます。
$ vmstat 1
psコマンド(Linux/Mac)
これも日常的にとりあえず使うやつです。
$ ps aux
なぜauxをつけるのかは以下参照
メモリ関係
freeコマンド(Linux)
メモリの使用状況がみられます。
$ free -h
-h
オプションは容量をみやすくしてくれます。
macの場合はtopコマンドとgrep組み合わせて以下コマンドで同様の情報がみられるようです。
$ top -l 1 | grep Mem
swapon(Linux)
スワップファイルが有効かと容量を確認できます。コマンドは以下
$ swapon
システムに負荷をかける
stress(Linux)
以下コマンドでインストールします。
$ sudo apt update
$ sudo apt install stress
とりあえずstress
とコマンド入力すると使い方がみられます。
例えば、以下コマンドで512MBずつHDDにひたすら書き込んで負荷をあたえます。
$ stress --vm 1 --vm-bytes 512M
以下コマンドでCPUを2コア使って負荷を与え続けます。
$ stress -c 2
以下コマンドだと、HDDをリードライトし続けます(オプションの2
はリードライト両方を意味します)。
$ stress --hdd 2
まとめ
負荷を調べるときに使うコマンドをまとめてみました。まだ他にもたまに使うコマンドあった気がするので、思い出したら追記していきます。
参考にした以下書籍も再掲いたします。より詳しい情報の他、同様にたまにやりたくなるブート時のsystemd=analyze
やbootchart
を使った解析などに関しても書かれているので、この記事が必要な方にオススメです。
Interface(インターフェース) 2023年 02 月号
関連記事
Discussion