Linuxのtopコマンドは、システムで実行中のプロセスを表示します。システム管理者にとって最も重要なツールの1つ。サーバーの負荷を監視するために広く使用されています。この記事では、トップコマンドについて詳しく説明します。一番上のコマンドは対話型コマンドです。 topの実行中は、多くのコマンドを使用できます。これらのコマンドについても説明します。
1。デフォルトのトップコマンド
まず、出力の内容を理解しましょう。 topコマンドは、実行中のシステムに関する多くの情報を表示します。ただし、この出力のさまざまなセクションの意味を理解する必要があります。実行中のプロセスを確認するには、ターミナルで以下のコマンドを実行します
# top
デフォルトで実行すると、topコマンドは次のような出力を表示します:
さまざまな列と横線にいくつかの情報があり、さまざまなシステムパラメータに関する概要が示されています。これらに続いて、プロセスとその属性が列に表示されます。
a)フィールド/列
デフォルトでは、topにはプロセスに関連するいくつかの属性が表示され、情報のタイプは列に表示されます。したがって、最上位のコマンドがどのように機能するかを理解するには、必要な情報がどこにあるかを知るために、各列の役割を知る必要があります
PID: プロセスを一意に識別する一意の値で表されるプロセスID。
ユーザー: プロセスの所有者の有効なユーザー名。特定のユーザーによって起動されたプロセスを正確に特定するのに役立ちます
PR: これは、Linuxカーネルから見たプロセスの実際の優先度であり、プロセスのスケジューリング優先度です。通常のプロセスの場合、カーネルの優先度は単純に +20です。 素敵な値から。したがって、ニュートラルなnice値がゼロのプロセスのカーネル優先度は20です。リアルタイムで実行されているプロセスの場合、フィールドの値は RTです。
NI: これは、ユーザースペースの概念に対応するプロセスの優れた価値です。適切な値の範囲は-20〜 + 19 ここで-20 最高、 0 デフォルトおよび+19 最も低いです。値が小さいほど、優先度が高くなります。良い値と優先度の関係はPR=20 + NI
です。
VIRT: これは、プロセスによって使用される仮想メモリの量です。これは、プログラムが現時点でアクセスできるメモリの量を表します。プロセスの仮想サイズを表します。これは、実際に使用しているメモリの合計です。
RES: 常駐メモリサイズです。常駐メモリは、タスクが使用しているスワップされていない物理メモリの量です。これは常駐サイズを表し、プロセスが実際に消費している物理メモリの量を正確に表しています。 (これは、%MEM列にも直接対応します。)ほとんどのプログラムはCライブラリに依存しているため、これは事実上常にVIRTサイズよりも小さくなります。
SHR: SHRは、プロセスで使用される共有メモリであり、実際に共有可能なVIRTサイズ(メモリまたはライブラリ)の量を示します。図書館の場合、必ずしも図書館全体が常駐しているとは限りません。
S: これがプロセスステータスです。プロセスは、機能状態によって定義されます。次のいずれかの値をとることができます:
- D-途切れない睡眠 :プロセスが何かが起こるのを待っているスリープ状態。信号によって中断することはできません。通常、プロセスがディスクを待機しているときに表示されます。
- R-実行中 :プロセスを実行する準備ができており、CPUを使用する順番が来るたびに実行されます
- S-寝ている :プロセスが何かが起こるのを待っているスリープ状態。信号によって中断される可能性があります
- T-トレースまたは停止 :通常は
SIGSTOP
を介してプロセスが停止している状態です。 またはSIGTSTP
。デバッガーで停止することもできます(ptrace
)。その状態が表示された場合、それは通常、Ctrl-Zを使用してコマンドをバックグラウンドに置いたことが原因です。 - Z-ゾンビ :はプロセスが停止している(実行が終了している)状態であり、残っているのはカーネル上でプロセスを記述する構造だけです。親プロセスが終了コードを取得するのを待っていますが、それ以上は待機していません。親プロセスが終了すると、消えます。
%CPU: これは、タスクが最後の更新以降に使用したCPU時間のパーセンテージです。プロセスによって使用されているCPUのパーセンテージ。デフォルトでは、 top
これを単一のCPUのパーセンテージとして表示します。 マルチコアシステムでは、100%を超えるパーセンテージを使用できます。
%MEM: これは、プロセスで使用されている使用可能な物理メモリの割合を表します。これは、そのプロセスで使用される使用可能なメモリの合計のシェアのように考えることができます。
時間+: タスクが開始してから使用した合計CPU時間。精度は、最大100分の1秒です。
コマンド: プロセスを開始するために使用されたコマンド。
デフォルトでは表示されない他の多くの出力があり、ページフォールト、プロセスの有効なグループおよびグループIDなどに関する情報を表示できます。
b)稼働時間と負荷の平均
「トップモード」の場合、トップコマンドの結果の最初の行に、稼働時間コマンドと同様の出力が表示されます。
フィールドには、以下の情報が表示されます。
*システムの現在の時刻
*システムが稼働している時刻
*システムにログインしているユーザーの数
*負荷の平均それぞれ5分、10分、15分。
この稼働時間の表示は、 lで切り替えることができます。 キーを押すと、負荷平均情報を非表示にできます。
c)タスク
2行目は、タスクまたはプロセスの要約を示しています。上記の「S」列で見たように、プロセスはさまざまな状態になる可能性があります。さまざまなプロセスとその状態を示しています
d)CPUの状態
3行目は、さまざまなCPU統計を示しています。
さまざまなCPU時間の意味は次のとおりです。
- 私たち、ユーザー :プロセッサがユーザースペースプロセスの実行に時間の1.8%を費やしていることを示しています。ユーザースペースプログラムは、カーネルに属していないプロセスです。
- sy、システム :CPUがカーネルの実行に費やした時間です。
- ni、niceed: CPUが改善されたユーザースペースプロセスの実行に費やした時間を示します。プロセスが改善されていないシステムでは、数は0になります。
- id、アイドル :これは、最後のサンプリング期間中、プロセッサが97%強の時間アイドル状態であったことを示しています。
- wa 、IO待機 :I/O操作が完了するのを待っている間はアイドル状態です
- こんにちは :プロセッサがハードウェア割り込みの処理に費やした時間
- si :プロセッサがソフトウェア割り込みの処理に費やした時間
- st :この最後の番号は、仮想マシンにのみ適用されます。 Linuxがハイパーバイザー上で仮想マシンとして実行されている場合、
st
(盗難の略)統計は、ハイパーバイザーが別の仮想マシンで実行されている別の仮想CPUにサービスを提供するのを仮想CPUが待機していた時間を示します。
これはt
で切り替えることができます タスクの表示方法を決定し、タスクとCPU情報を非表示にできるキー。
e)メモリ使用量
この部分は、現在インストールされている物理メモリの量に応じて、キビバイト(KiB)、メビバイト(MiB)、またはギビバイト(GiB)で値を表すことができる2行で構成されます。
- 1行目は物理的記憶を反映しています 、分類:合計、使用済み、空き、バッファ
- 2行目は仮想メモリを反映しています 、分類:合計、使用済み、無料、キャッシュ済み
- 物理的記憶 RAM、ランダムアクセスメモリを提供するハードウェアの物理的な部分です
- 交換 は仮想メモリであり、基本的に追加のRAMとして使用されるハードドライブ上のファイルまたはパーティションにすることができます。ただし、これは個別のRAMチップではなく、ハードドライブ上にあります。
メモリはm
で切り替えることができます メモリ使用量の表示方法を決定し、メモリ情報を非表示にできるキー。
2。インタラクティブヘルプメニューを表示する
Topが起動するとデフォルトでアクティブになる強力なインタラクティブモードがあります。文字キーを押すだけでさまざまなコマンドを使用して、表示されているものを操作できます。ここでは、これらのコマンドについてさらに詳しく説明します。
まず、 h
を押すことができます または?
インタラクティブコマンドのヘルプメニューまたはコマンドの要約リストを表示します。トップコマンドの実行で使用できるさまざまなキーの役割を確認できます。
3。表示を手動で更新する
topコマンドは、デフォルトで、特定の間隔(3秒)後に表示された情報を更新します。これらの情報を手動で更新するには、ユーザーは ENTER
を押すことができます またはSPACE
。
4)代替表示モードを切り替えます
デフォルトでは、概要とタスクデータが単一のウィンドウに表示される全画面表示モードがあります。したがって、いつでも1つのフィールドグループのみを表示できます。代替表示モードもあり、最大4つのウィンドウがあり、それぞれにフィールドグループが表示されます。これらのウィンドウの名前は、Def、Job、Mem、Usr
です。- 定義: %CPUでソート
- 仕事 :PIDでソート
- メム :%MEMでソート
- ユーザー :ユーザーフィールドで並べ替え
代替表示モードは、 A
を使用して開始できます。 表示モード切り替えコマンド。 4つのフィールドグループのそれぞれには、個別に構成可能な固有の要約領域と、独自の構成可能なタスク領域があります。これらの4つのウィンドウのうち1つだけが現在のウィンドウになります。現在のウィンドウが左上隅に表示されます。
a
で4つのウィンドウを切り替えることができます およびw
キー。 a
次へ移動し、 w
前のウィンドウに。 g
を使用 コマンドを押すと、数値を入力して現在のウィンドウを選択できます。
5)太字表示
重要な情報の一部は太字で示されています。 B
コマンドは太字の使用を切り替えます。このコマンドは、太字のterminfo機能の使用に影響を与え、現在のウィンドウの要約領域とタスク領域の両方を変更します。このトグルが'オンの場合 'およびtopがモノクロモードで動作している場合、ディスプレイ全体が通常のテキストとして表示されます。したがって、 x
でない限り、 および/またはy
トグルは強調のためにリバースを使用しており、オンになっていることを視覚的に確認することはできません。
6)表示時間間隔の設定
d
またはs
キーは、更新間の遅延を変更します。新しい遅延時間の入力を求めます。これは秒単位である必要があります。セキュアモードで抑制されます。 d
の場合 またはs
を押すと、表示間隔として設定される値(秒単位)を入力するように求められます。ここに1を入力すると、topは毎秒更新されます。
7)ロード、タスク、メモリ情報の切り替え
l
、 t
およびm
キーは、稼働時間と負荷平均で説明されているように、負荷平均、タスク/ CPUステータス、およびメモリ情報をそれぞれ切り替えます。 、CPUの状態 およびメモリ使用量 。
8)表示用のフィールド管理
F
出力画面に表示するフィールドを選択するために使用されるキー。表示するフィールドを選択するには、 SPACE
を押します。 またはd
名前のキー。 *のマークが付いたフィールドが選択されます。 q
を押します またはESC
終了したら終了します。
<コード> および
>
<コード> コマンドは、並べ替えられたフィールドを左に移動し、
>
右へ
9)逆ソート
デフォルトでは、ソートは降順で行われます。 R
を押す この対話型コマンドを使用すると、現在ソートされている列のソート順が逆になり、CPUの消費量が最も少ないpProcessが最初に表示されます。
10)コマンドパスを表示する
c
COMMAND列にコマンドライン引数とともに完全なコマンドパスを表示します。
11)アイドルタスク
i
キーにアイドルタスクが表示されないアイドルタスクを切り替えます。すべてのタスクまたはアクティブなタスクのみが表示されます。このトグルがオフの場合、最後の更新以降にCPUを使用していないタスクは表示されません。ただし、%CPUフィールドとTIME +フィールドの粒度により、CPUを使用していないように見えるプロセスが表示される場合があります。
12)フォレストビュー
V
キーを押すと、以下のように親子階層のプロセスが表示されます
13)カラーマップを変更する
Z
を押す キーを押すと、トップコマンドの表示色を変更できる画面が表示されます。別の画面が表示されます。その画面を使用して、現在のウィンドウのみ、または4つのウィンドウすべてで色を変更してから、トップディスプレイに戻ることができます。 Z
を発行するとき インタラクティブコマンドでは、4つの大文字で、8つの数字のターゲットを選択して色を選択できます
以下の画面は、4つの画面すべてがオンになっているフルカラーの上面図を示しています。
14)色の切り替え
z
カラーディスプレイをオンまたはオフにします。現在のウィンドウを、最後に使用した配色と、古い形式の白地に黒または黒地に白との間で切り替えます。このコマンドは、サマリー領域とタスク領域の両方を変更します
15)現在の並べ替えフィールドと実行中のタスクのハイライトを変更
x
列の場合-現在の並べ替えフィールドのハイライトを変更するトグルを強調表示します。並べ替えられているフィールドを忘れた場合、このコマンドは、並べ替えフィールドが表示されていれば、視覚的なリマインダーとして役立ちます。画面幅やf
が不十分なため、並べ替えフィールドが表示されない場合があります インタラクティブコマンドでオフにしました
y
行の場合-実行中のタスクのハイライトの変更をハイライト表示します。この規定を使用すると、システムの状態に関する重要な洞察が得られます。唯一のコストは、いくつかの追加のttyエスケープシーケンスです
表示設定によっては、これらのハイライトに気付くために出力を色付けする必要がある場合があります。
16)ユーザーのプロセスを表示する
u
特定のユーザーのプロセスを示します。ユーザー名の入力を求められます。空白はすべてのユーザーに表示されます。指定されたユーザーIDまたはユーザー名と一致するプロセスのみが表示されます。有効なユーザーと一致します
17)表示されたタスクの数を表示する
n
または#
表示されるタスクの最大数を設定します。表示するタスクの数を入力するように求められます。あなたの番号と利用可能な画面行の貸し手が使用されます。代替表示モードで使用する場合、これは、最後を除いて、現在表示されている各タスク表示のサイズを正確に制御できるコマンドです。以前のすべてのタスク表示はすでにペイントされているため、最後のウィンドウのサイズには影響しません。
18)タスクを強制終了する
topの最も重要なコマンドの1つ。 k
タスクにシグナルを送信するために使用されます(通常はタスクを強制終了します)。 PIDの入力を求められ、次に送信する信号の入力を求められます。 PIDを入力しないか、負の数を入力すると、プロンプトに表示されるデフォルト(最初に表示されるタスク)として解釈されます。ゼロのPID値は、最上位のプログラム自体を意味します。プロンプトに反映されるデフォルトのシグナルはSIGTERMです。ただし、番号または名前を使用して、任意の信号を送信できます。強制終了プロセスを中止する場合は、進行状況に応じて次のいずれかを実行します。
- pidプロンプトで、無効な番号を入力してください
- 信号プロンプトで、0(または無効な信号)を入力します
- 任意のプロンプトで、
19)タスクを放棄する
r
オプションは、プロセスの優先度を変更するために使用されます。この操作は、スケジューリングの優先順位を変更するためのタスクの放棄とも呼ばれます。 PIDの入力を求められ、次に値を入力するように求められます。 PIDを入力しないか、負の数を入力すると、プロンプトに表示されるデフォルト(最初に表示されるタスク)として解釈されます。ゼロのPID値は、最上位のプログラム自体を意味します。正のnice値を指定すると、プロセスの優先順位が失われます。逆に、nice値が負の場合、プロセスはカーネルによってより好意的に表示されます。
原則として、通常のユーザーはnice値を増やすことしかできず、下げることはできません。 reniceプロセスを中止する場合は、進行状況に応じて次のいずれかを実行します。
- pidプロンプトで、無効な番号を入力してください
- 素敵なプロンプトで、入力なしで
と入力します - 任意のプロンプトで、
20)個別のCPU状態
このコマンドは、 t
の方法に影響します コマンドのCPU状態部分が表示されます。サマリー領域に%Cpu(s)が表示されている場合、 1
トグルはオンで、すべてのCPU情報が1行に収集されます。それ以外の場合、各CPUは、使用可能な画面の高さまで「%Cpu0、%Cpu1、...」として個別に表示されます。
21)CPUの状態を要約する
この2
コマンドは1
を切り替えます コマンドcpusummarydisplay(のみ)またはsummarydisplayと各NUMAノードのcpu使用統計。
22)バッチモードでトップコマンドを表示する
-b
オプションは、バッチモードでtopコマンドを開始します。出力をファイルに保存する場合に便利です。
# top -b top - 01:05:36 up 4 days, 2:59, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 117 total, 1 running, 116 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.6 us, 0.2 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 500096 total, 50244 free, 45732 used, 404120 buff/cache KiB Swap: 0 total, 0 free, 0 used. 414836 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1373 root 20 0 40388 3672 3160 R 6.2 0.7 0:00.02 top 1 root 20 0 38052 5600 3488 S 0.0 1.1 0:23.26 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:09.17 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:27.64 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 10 root rt 0 0 0 0 S 0.0 0.0 0:04.02 watchdog/0
23)コマンド/プログラム名の切り替え
上記のコマンドで説明したように、 -c
オプションは、コマンド/プログラム名の表示の最後に記憶された状態から切り替わります。
24)コマンドラインで遅延間隔を設定します
-d
topの遅延間隔を設定します(秒単位)。例:
$ top -d 1
最上位のコマンドを1秒の遅延間隔で開始します。
25)コマンドラインでのアイドルプロセスの切り替え
このオプションは、最後に記憶された i
でトップコマンドを設定します 状態が逆転しました。
$ top -i
26)コマンドラインで反復回数を設定します
-n
を使用 オプションで、topが終了するまでの反復回数を設定できます。
$ top -n 3
3つの出力後に自動的にトップを終了します。下の画像では、自動的に終了しました
27)コマンドラインで特定のPIDを監視する
-p
を使用して、監視するPIDを指定できます。 オプション。 PID値0は、トップコマンド自体のプロセスIDとして扱われます。
$ top -p pid_value
28)コマンドラインでユーザー名またはUIDごとにタスクを表示する
特定のユーザーのプロセスは、これらのオプションで表示できます。オプションにユーザー名またはUIDを指定できます。 -p
、 -u
および-U
オプションは相互に排他的です。一度に使用できるオプションは1つだけです。これらのオプションを任意に組み合わせて使用しようとすると、エラーが発生します。
$ top -u franshesco
29)コマンドラインで...で並べ替える
-o
フィルタリングのtopコマンドで使用できます。 「現在の」ウィンドウに表示されるタスクを決定します。たとえば、%CPUで並べ替えます
# top -o %CPU
30)上位のコマンドバージョンを確認する
最上位のコマンドバージョンを確認するには、-vオプションを使用します
# top -v procps-ng version 3.3.10
結論
これで、topコマンドでプロセスを操作できます。私たちにはその強力で利点があります。コマンドラインまたはインタラクティブモードで使用できます。これで、ニーズに合わせて使用方法を簡単に選択できます。