LinuxTOPコマンド
Linuxでプロセスを監視するための最も基本的なコマンドの1つは、topコマンドです。名前が示すように、CPU使用率やメモリ使用率などの特定の基準に基づいた上位のプロセスが表示されます。
プロセスは、プロセス名、pid、ユーザー、CPU使用率、メモリ使用量などの詳細について、複数の列を持つリストに一覧表示されます。
プロセスのリストとは別に、topコマンドには、平均システム負荷、CPU使用率、およびRAM使用量に関する簡単な統計情報も表示されます。
この投稿では、topコマンドを使用してLinuxマシンまたはサーバー上のプロセスを監視する方法の非常に簡単な例をいくつか示します。
「トップ」コマンドバリアントに注意してください
topコマンドにはさまざまなバリエーションがあり、それぞれにわずかに異なるオプションと使用方法のセットがあることに注意してください。
上位のコマンドバージョンとバリアントを確認するには、-vオプションを使用します
$ top -v procps-ng version 3.3.9
この投稿では、procps-ngプロジェクトからの最上位コマンドに焦点を当てています。これは、Ubunut、Fedora、CentOSなどの最新のディストリビューションで利用可能なバージョンです。
1。表示プロセス
実行中のプロセスを垣間見るには、トップを実行するだけです。 このようなオプションなしでそのままコマンドを実行します。
$ top
そしてすぐに出力は次のようになります-
top - 18:50:35 up 9:05, 5 users, load average: 0.68, 0.52, 0.39 Tasks: 254 total, 1 running, 252 sleeping, 0 stopped, 1 zombie %Cpu(s): 2.3 us, 0.5 sy, 0.0 ni, 97.1 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 6567896 used, 1597404 free, 219232 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 2445372 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 17952 enlight+ 20 0 1062096 363340 88068 S 4.8 4.4 0:49.33 chrome 14294 enlight+ 20 0 954752 203548 61404 S 2.1 2.5 2:00.91 chrome 1364 root 20 0 519048 105704 65348 S 0.6 1.3 17:31.27 Xorg 19211 enlight+ 20 0 576608 47216 39136 S 0.6 0.6 0:01.01 konsole 13 root rt 0 0 0 0 S 0.3 0.0 0:00.10 watchdog/1 25 root 20 0 0 0 0 S 0.3 0.0 0:03.49 rcuos/2 1724 enlight+ 20 0 430144 36456 32608 S 0.3 0.4 0:03.60 akonadi_contact 1869 enlight+ 20 0 534708 52700 38132 S 0.3 0.6 0:53.94 yakuake 14040 enlight+ 20 0 858176 133944 61152 S 0.3 1.6 0:09.89 chrome
画面には、システムに関する多くの情報が含まれています。ヘッダー領域には、稼働時間、負荷平均、CPU使用率、メモリ使用量データが含まれます。
プロセスリストには、さまざまなプロセス固有の詳細を含むすべてのプロセスが個別の列に表示されます。
一部の列名は、かなり自明です。
PID -プロセスID
ユーザー -プロセスを実行しているシステムユーザーアカウント。
%CPU -プロセスによるCPU使用率。
%MEM -プロセスによるメモリ使用量
コマンド -プロセスのコマンド(実行可能ファイル)
2。メモリ/CPU/プロセスID/実行時間で並べ替え
CPUまたはメモリを最も消費しているプロセスを見つけるには、リストを並べ替えるだけです。
Mキー(はい、大文字で、小さくない)を押して、メモリ使用量でプロセスリストを並べ替えます。最も多くのメモリを使用しているプロセスが最初に表示され、残りは順番に表示されます。
CPU使用率、プロセスID、実行時間で並べ替えるその他のオプションは次のとおりです-
「P」を押して、CPU使用率でプロセスリストを並べ替えます。
「N」を押して、プロセスIDでリストを並べ替えます。
「T」を押して、実行時間で並べ替えます。
3。並べ替え順序を逆にします-'R'
デフォルトでは、ソートは降順で行われます。 'R'を押すと、現在ソートされている列のソート順が逆になります
これは、CPU使用率の昇順でソートされた出力です。 CPUの消費量が最も少ないプロセスが最初に表示されます。
top - 17:37:55 up 8:25, 3 users, load average: 0.74, 0.88, 0.74 Tasks: 245 total, 1 running, 243 sleeping, 0 stopped, 1 zombie %Cpu(s): 5.2 us, 1.7 sy, 0.0 ni, 93.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 6089388 used, 2075912 free, 199060 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 1952412 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 185308 6020 4012 S 0.0 0.1 0:01.90 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.16 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+ 7 root 20 0 0 0 0 S 0.0 0.0 0:06.98 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
4。並べ替えられた列を太字で強調表示します-'x'
xを押して、ソート列の値を太字で強調表示します。これがスクリーンショットで、メモリ列が太字で示されています-


トップコマンドハイライト列
5。並べ替えられた列の背景色「b」を強調表示します
並べ替えられた列を太字で強調表示した後、別の背景色で強調表示することもできます。見た目はこんな感じです


トップコマンドハイライト列の背景
6。更新遅延を変更します-'d'
topコマンドは、デフォルトで3.0秒ごとに画面上の情報を更新します。この更新間隔は変更できます。
'd'キーを押すと、topは各更新間の時間間隔を入力するように求めます。 0.5など、1秒未満の数値も入力できます。希望の間隔を入力してEnterキーを押します。
top - 18:48:23 up 9:19, 3 users, load average: 0.27, 0.46, 0.39 Tasks: 254 total, 1 running, 252 sleeping, 0 stopped, 1 zombie %Cpu(s): 1.3 us, 0.4 sy, 0.0 ni, 98.1 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 7899784 used, 265516 free, 238068 buffers KiB Swap: 1998844 total, 5432 used, 1993412 free. 3931316 cached Mem Change delay from 3.0 to PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14512 enlight+ 20 0 1047688 302532 87156 S 1.3 3.7 1:34.87 /opt/googl+ 15312 enlight+ 20 0 25148 3280 2628 R 0.8 0.0 0:00.04 top
7。フィルタまたは検索プロセス-'o'/'O'
プロセス名、メモリ使用量、CPU使用率などのさまざまな基準に基づいて、プロセスリストをフィルタリングできます。複数のフィルタ基準を適用できます。
「o」または「O」を押して、フィルタープロンプトをアクティブにします。このようなフィルターフォーマットを示す線が表示されます-
add filter #1 (ignoring case) as: [!]FLD?VAL
次に、このようなフィルターを入力して、Enterキーを押します。
COMMAND =apache
これで、topには、COMMANDフィールドに値apacheが含まれているプロセスのみが表示されます。
これは、CPUをアクティブに消費しているプロセスを示す別のフィルターの例です-
%CPU> 0.0
アクティブなフィルターを見る -Ctrl + oを押して、現在アクティブなフィルターを表示します
フィルターをクリア -'='キーを押して、アクティブなフィルターをすべてクリアします
8。プロセスの完全なコマンドパスと引数を表示します-'c'
'c'を押すと、コマンドライン引数とともに完全なコマンドパスが[コマンド]列に表示されます。
%CPU %MEM TIME+ COMMAND 0.0 0.0 0:00.00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-laun+ 0.0 0.1 0:01.52 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address+ 0.0 0.3 0:00.41 /usr/bin/kwalletd --pam-login 17 20 0.0 0.0 0:00.00 /usr/lib/x86_64-linux-gnu/libexec/kf5/start_kdeinit --kde+ 0.0 0.3 0:01.55 klauncher [kdeinit5] --fd=9 0.0 0.2 0:00.13 /usr/lib/telepathy/mission-control-5 0.0 0.1 0:00.00 /usr/lib/dconf/dconf-service 0.0 0.4 0:01.41 /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd 0.0 0.2 0:01.09 /usr/lib/x86_64-linux-gnu/libexec/kf5/kscreen_backend_lau+
9。ユーザーのプロセスを表示する-'u'/'U'
特定のユーザーのプロセスのみを表示するには、「u」を押すと、topからユーザー名の入力を求められます。
どのユーザー(すべて空白)
目的のユーザー名を入力し、Enterキーを押します。
top - 17:33:46 up 8:21, 3 users, load average: 2.55, 1.31, 0.81 Tasks: 246 total, 1 running, 244 sleeping, 0 stopped, 1 zombie %Cpu(s): 11.8 us, 3.3 sy, 0.6 ni, 84.2 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem: 8165300 total, 6108824 used, 2056476 free, 198680 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 1963436 cached Mem Which user (blank for all) enlightened PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1696 enlight+ 20 0 440728 37728 33724 S 0.0 0.5 0:03.12 akonadi_bi+ 1705 enlight+ 20 0 430304 37156 33264 S 0.0 0.5 0:03.08 akonadi_mi+ 1697 enlight+ 20 0 430144 37100 33248 S 0.0 0.5 0:03.00 akonadi_co+ 1599 enlight+ 20 0 504628 36132 32068 S 0.0 0.4 0:03.24 kdeconnectd 1608 enlight+ 20 0 570784 35688 29944 S 0.0 0.4 0:02.87 polkit-kde+ 1584 enlight+ 20 0 781016 33308 29056 S 0.0 0.4 0:04.03 kactivitym+
10。アイドル状態のプロセスの表示を切り替えます-'i'
'i'を押して、アイドル/スリーププロセスの表示を切り替えます。デフォルトでは、すべてのプロセスが表示されます。
11。上部の情報を非表示/表示-'l'、't'、'm'
「l」キーは負荷平均情報を非表示にします。
「m」キーはメモリ情報を非表示にします。
「t」キーはタスクとCPU情報を非表示にします。
ヘッダー情報領域を非表示にすると、リストに表示されるプロセスが増えます。
12。フォレストモード-'V'
「V」を押すと、親子階層のプロセスが表示されます。このように見えます-
top - 09:29:34 up 17 min, 3 users, load average: 0.37, 0.58, 0.66 Tasks: 244 total, 1 running, 242 sleeping, 0 stopped, 1 zombie %Cpu(s): 6.1 us, 2.1 sy, 0.0 ni, 91.8 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 3968224 used, 4197076 free, 82868 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 1008416 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 37844 5964 4012 S 0.0 0.1 0:01.08 systemd 279 root 20 0 35376 4132 3732 S 0.0 0.1 0:00.22 `- systemd-journal 293 root 20 0 44912 4388 3100 S 0.0 0.1 0:00.14 `- systemd-udevd 493 systemd+ 20 0 102360 2844 2572 S 0.0 0.0 0:00.01 `- systemd-timesyn 614 root 20 0 337360 8624 6904 S 0.0 0.1 0:00.03 `- ModemManager 615 avahi 20 0 40188 3464 3096 S 0.0 0.0 0:00.01 `- avahi-daemon 660 avahi 20 0 40068 324 12 S 0.0 0.0 0:00.00 `- avahi-daem+ 617 root 20 0 166276 8788 8076 S 0.0 0.1 0:00.07 `- thermald 621 root 20 0 15664 2496 2312 S 0.0 0.0 0:00.00 `- anacron 2792 root 20 0 4476 844 760 S 0.0 0.0 0:00.00 `- sh 2793 root 20 0 4364 684 604 S 0.0 0.0 0:00.00 `- run-pa+ 2802 root 20 0 4476 1672 1536 S 0.0 0.0 0:00.00 `- apt 2838 root 20 0 7228 676 596 S 0.0 0.0 0:00.00 `+ 630 root 20 0 28932 3128 2860 S 0.0 0.0 0:00.00 `- cron 634 root 20 0 283120 6776 5924 S 0.0 0.1 0:00.04 `- accounts-daemon 636 root 20 0 86160 7224 6128 S 0.0 0.1 0:00.01 `- cupsd
13。表示するプロセスの数を変更します-'n'
特定のフィルター基準に基づいて、少数のプロセスのみを監視するとします。 「n」を押して、表示するプロセスの数を入力します。
-
最大タスク=0、(0は無制限)に変更という行が表示されます。
14。すべてのCPUコアを表示-'1'
「1」を押すと、個々のCPUコアに関する負荷情報が表示されます。外観は次のとおりです-
top - 10:45:47 up 1:42, 5 users, load average: 0.81, 1.14, 0.94 Tasks: 260 total, 2 running, 257 sleeping, 0 stopped, 1 zombie %Cpu0 : 3.6 us, 3.6 sy, 0.0 ni, 92.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 3.1 us, 3.6 sy, 0.0 ni, 93.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 7.6 us, 1.8 sy, 0.0 ni, 90.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 9.6 us, 2.6 sy, 0.0 ni, 87.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 7118864 used, 1046436 free, 204224 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 3410364 cached Mem
15。列の表示/非表示'f'
デフォルトでは、topは、表示できる他の多くの列のうち、ほんの数列しか表示しません。特定の列を追加または削除したり、列の順序を変更したりする場合は、f
を押します。Fields Management for window 1:Def, whose current sort field is %CPU Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! * PID = Process Id PGRP = Process Group vMj = Major Faults * USER = Effective Use TTY = Controlling T vMn = Minor Faults PR = Priority TPGID = Tty Process G USED = Res+Swap Size NI = Nice Value SID = Session Id nsIPC = IPC namespace VIRT = Virtual Image nTH = Number of Thr nsMNT = MNT namespace RES = Resident Size P = Last Used Cpu nsNET = NET namespace SHR = Shared Memory TIME = CPU Time nsPID = PID namespace S = Process Statu SWAP = Swapped Size nsUSER = USER namespac * %CPU = CPU Usage CODE = Code Size (Ki nsUTS = UTS namespace * %MEM = Memory Usage DATA = Data+Stack (K TIME+ = CPU Time, hun nMaj = Major Page Fa * COMMAND = Command Name/ nMin = Minor Page Fa PPID = Parent Proces nDRT = Dirty Pages C UID = Effective Use WCHAN = Sleeping in F RUID = Real User Id Flags = Task Flags <s RUSER = Real User Nam CGROUPS = Control Group SUID = Saved User Id SUPGIDS = Supp Groups I SUSER = Saved User Na SUPGRPS = Supp Groups N GID = Group Id TGID = Thread Group GROUP = Group Name ENVIRON = Environment v
*または太字でマークされたフィールドは、このリストに表示される順序で表示されるフィールドです。
上/下矢印キーを使用してリストをナビゲートし、「d」を押してそのフィールドの表示を切り替えます。完了したら、qを押してプロセスリストに戻ります
次の出力には、PID、USER、CPU、MEMORY、およびCOMMAND列のみが表示されます。
top - 15:29:03 up 6:16, 4 users, load average: 0.99, 0.61, 0.63 Tasks: 247 total, 1 running, 245 sleeping, 0 stopped, 1 zombie %Cpu(s): 6.3 us, 2.0 sy, 0.2 ni, 91.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8165300 total, 6089244 used, 2076056 free, 189272 buffers KiB Swap: 1998844 total, 0 used, 1998844 free. 1902836 cached Mem PID USER %CPU %MEM COMMAND 1921 enlight+ 9.2 3.6 /opt/google/chrome/chrome 3078 enlight+ 6.9 4.2 /opt/google/chrome/chrome --type=renderer --lang=en-+ 1231 root 5.3 1.0 /usr/bin/X :0 -auth /var/run/sddm/:0 -nolisten tcp -+ 1605 enlight+ 2.8 2.5 /usr/bin/plasmashell --shut-up 1596 enlight+ 1.8 1.0 kwin_x11 -session 10d8d4e36b000144740943900000009530+ 2088 enlight+ 0.9 1.7 /opt/google/chrome/chrome --type=renderer --lang=en-+ 2534 enlight+ 0.8 1.7 /opt/google/chrome/chrome --type=renderer --lang=en-+ 5695 enlight+ 0.8 0.7 /usr/bin/python /usr/bin/terminator 1859 enlight+ 0.2 1.2 /usr/bin/perl /usr/bin/shutter --min_at_startup 2060 enlight+ 0.2 1.5 /opt/google/chrome/chrome --type=renderer --lang=en-+ 3541 enlight+ 0.2 3.6 /opt/google/chrome/chrome --type=renderer --lang=en-+
16。バッチモード
Topはバッチモード出力もサポートしており、単一画面ではなく情報を順番に印刷し続けます。これは、後で何らかの分析を行うために上位の出力をログに記録する必要がある場合に役立ちます。
これは、1秒間隔でのCPU使用率を示す簡単な例です。
$ top -d 1.0 -b | grep Cpu
17。複数のパネルに出力を分割-'A'
各パネルは、異なる列で並べ替えることができます。 「a」を押してパネル内を移動します。各パネルには、異なるフィールドのセットと異なるソート列を表示できます。


トップコマンド複数のパネル
結論
Topは、システムリソースの使用状況とプロセスの詳細を確認するための優れたコマンドラインツールです。監視と迅速な診断のためにサーバーでよく使用されます。
より優れたユーザーインターフェイスを備えたより簡単なものをお探しの場合は、htopをお試しください。 Htopには直感的なユーザーインターフェイスがあり、キーボードショートカットを覚える必要はありません。 Htopには、使用方法を説明する画面上の説明があります。