「はぁーなんだっけ?」って毎度なるヤツです。
htop
は使い方やおすすめツールなんかで紹介されがちだけど、カラム内容とセットで触れた記事は少ないので。
だいたいデフォルトで表示されてるモノ
man htop
に記載されている内容に、少し味を足したものです。内容的にはtop
とほぼ同じモノです。
- PID
- プロセスID。
- USER
- プロセスオーナーのユーザ名。
- PRIORITY (PRI)
- プロセスのカーネル内部の優先度。
nice値に20を足した値が表示される。
リアルタイムプロセスとは異なる。 - NICE (NI)
- プロセスのnice値は19(低)から-20(髙)まで。
優先度の変更は権限のあるユーザーでなければならない。 - M_SIZE (VIRT)
- プロセスの仮想メモリのサイズ。
- M_RESIDENT (RES)
- プロセスの常駐メモリ(text + data + stack)のサイズ。プロセスが実際使っているメモリサイズ。
- M_SHARE (SHR)
- プロセスの共有ページ(共有メモリ)のサイズ。
- STATE (S)
- プロセスの状態:
S - スリーピング
R - 実行中
D - ディスクスリープ
Z - ゾンビ(親の終了ステータスの読み取り待ち)
T - トレースまたは一時停止
W - ページング - PERCENT_CPU (CPU%)
- プロセスが現在使用しているCPU時間をパーセンテージで表した値。
- PERCENT_MEM (MEM%)
- プロセスが現在使用しているメモリをパーセンテージで表した値。
- TIME (TIME+)
- プロセスがユーザとシステムに費やした時間。
- IO_RATE (DISK R/W)
- I/Oレート。読み書き(IO_READ_RATE + IO_WRITE_RATE)の合計。
- Command
- プロセスのフルコマンドライン。プログラム名や引数を含む。
VIRTについて
VIRTはVirtual Memory、つまり仮想メモリのサイズの値を示していますが、勘違いしてはいけないのが、Windowsで言う「仮想メモリ」やLinuxなどの「SWAP・ページ」とはやっている仕事内容が全然まったくウルトラ違うのです。
簡潔に述べると、プロセスに仮で割り当てているメモリの総量で、その気になったらそれぐらい使い倒す予定であることを示す値。
実際に示されたメモリ量全部を使われることはまず無い。
常にデカい量が示されるが、コードや共有してるライブラリ、スワップアウトされたページとマップ、とにかくそのプロセスが絡んでる全ての総量を仮想的に示してるから、かなり目立っているけど、基本無視しても良い部分(なんかJava実行してるとまあまあ目立つ)。
プロセスはいつでもアクセス出来て、アクセスすると物理メモリになるから、実際にプロセスが使われているメモリ量はRESをみるだけで良い。
この辺はみんな「🤔」ってなるかもね。私もなった。
参考:
上記以外
やる気が湧いたら書く(˘ω˘)