top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマンドです。いくつかの操作を除いて、top コマンドの操作のほとんどはすでにご存知でしょう。私が間違っていなければ、バッチ モードもその 1 つです。 この操作は主にスクリプト作成に使用されるため、ほとんどのスクリプト作成者と開発者はこれを知っています。 ご存知ない方もご心配なく、ここで説明します。 top コマンドのバッチモードとは何ですか? バッチ モードでは、top コマンドの出力を別のプログラムまたはファイルに送信できます。 このモードでは、top コマンドは入力を受け入れず、-n オプションで指定した反復回数に達するまで実行を続けます。 Linux サーバーのパフォーマンスの問題をトラブルシューティングする場合は、top コマンドの出力を正しく理解する必要があります。 1) topコマンドをバッチモードで実行する方法 デフォルトでは、top コマンドは出力を CPU 使用率でソートします。そのため、次のコマンドをバッチ モードで実行すると、同じことが行われ、最初の 35 行が出力されます。 # トップ -bc | ヘッド -35 トップ - 06:41:14 8 日間稼働、20:24、ユーザー 1 人、負荷平均: 0.87、0.77、0.81 タスク: 合計 139、実行中 1、スリープ中 136、停止中 0、ゾンビ 2 %CPU: 0.0 us、3.2 sy、0.0 ni、96.8 id、0.0 wa、0.0 hi、0.0 si、0.0 st KiB メモリ: 合計 3880940、空き 1595932、使用中 886736、バフ/キャッシュ 1398272 KiB スワップ: 合計 1048572、空き 514640、使用済み 533932。使用可能なメモリ 2648472 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 1 ルート 20 0 191144 2800 1596 S 0.0 0.1 5:43.63 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 ルート 20 0 0 0 0 S 0.0 0.0 0:00.32 [kthreadd] 3 ルート 20 0 0 0 0 S 0.0 0.0 0:28.10 [ksoftirqd/0] 5 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 ルート rt 0 0 0 0 S 0.0 0.0 0:33.96 [移行/0] 8 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 ルート 20 0 0 0 0 S 0.0 0.0 63:05.12 [rcu_sched] 10 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-drain] 11 ルート rt 0 0 0 0 S 0.0 0.0 0:08.79 [ウォッチドッグ/0] 12 ルート rt 0 0 0 0 S 0.0 0.0 0:08.82 [ウォッチドッグ/1] 13 ルート rt 0 0 0 0 S 0.0 0.0 0:44.27 [移行/1] 14 ルート 20 0 0 0 0 S 0.0 0.0 1:22.45 [ksoftirqd/1] 16 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/1:0H] 18 ルート 20 0 0 0 0 S 0.0 0.0 0:00.01 [kdevtmpfs] 19 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 20 ルート 20 0 0 0 0 S 0.0 0.0 0:01.35 [khungtaskd] 21 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.02 [書き戻し] 22 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 23 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [バイオセット] 24 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 25 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 26 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [edac-poller] 33 ルート 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 34 ルート 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd] 35 ルート 39 19 0 0 0 S 0.0 0.0 0:12.80 [khugepaged] 36 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [暗号] 44 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kthrotld] 46 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kmpath_rdacd] 2) topコマンドをバッチモードで実行し、結果をメモリ使用量で並べ替える方法 結果をメモリ使用量で並べ替えるには、次のコマンドをバッチ モードで実行します。 # トップ -bc -o +%MEM | ヘッド -n 20 トップ - 06:42:00 8 日間稼働、20:25、ユーザー 1 人、負荷平均: 0.66、0.74、0.80 タスク: 合計 146、実行中 1、スリープ中 145、停止中 0、ゾンビ 0 %CPU: 0.0 us、0.0 sy、0.0 ni、100.0 id、0.0 wa、0.0 hi、0.0 si、0.0 st KiB メモリ: 合計 3880940、空き 1422044、使用中 1059176、バフ/キャッシュ 1399720 KiB スワップ: 合計 1048572、空き 514640、使用済み 533932。使用可能なメモリ 2475984 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 18105 mysql 20 0 1453900 156096 8816 S 0.0 4.0 2:12.98 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 1841 ルート 20 0 228980 107036 5360 S 0.0 2.8 0:05.56 /usr/local/cpanel/3rdparty/perl/528/bin/perl -T -w /usr/local/cpanel/3rdparty/bin/spamd --max-children=3 --max-spare=1 --allowed-ips=127.0.0.+ 4301 ルート 20 0 230208 104608 1816 S 0.0 2.7 0:03.77 スパム子 8139 誰もいない 20 0 257000 27108 3408 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k 開始 7961 誰もいない 20 0 256988 26912 3160 S 0.0 0.7 0:00.05 /usr/sbin/httpd -k 開始 8190 誰もいない 20 0 256976 26812 3140 S 0.0 0.7 0:00.05 /usr/sbin/httpd -k 開始 8353 誰もいない 20 0 256976 26812 3144 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k 開始 8629 誰もいない 20 0 256856 26736 3108 S 0.0 0.7 0:00.02 /usr/sbin/httpd -k 開始 8636 誰もいない 20 0 256856 26712 3100 S 0.0 0.7 0:00.03 /usr/sbin/httpd -k 開始 8611 誰もいない 20 0 256844 25764 2228 S 0.0 0.7 0:00.01 /usr/sbin/httpd -k 開始 8451 誰もいない 20 0 256844 25760 2220 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k 開始 8610 誰もいない 20 0 256844 25748 2224 S 0.0 0.7 0:00.01 /usr/sbin/httpd -k 開始 8632 誰もいない 20 0 256844 25744 2216 S 0.0 0.7 0:00.03 /usr/sbin/httpd -k 開始 上記コマンドの詳細: -b : バッチモードオプション -c: 実行中のプロセスの絶対パスを出力します -o: ソートするフィールドを指定します head: ファイルの最初の部分を出力します -n: 最初のn行を印刷する 3) topコマンドをバッチモードで実行し、指定したユーザープロセスで結果を並べ替える方法 特定のユーザー プロセスで結果を並べ替える場合は、次のコマンドを実行します。 # トップ -bc -u mysql | ヘッド -n 10 トップ - 06:44:58 8 日間稼働、20:27、ユーザー 1 人、負荷平均: 0.99、0.87、0.84 タスク: 合計 140、実行中 1、スリープ中 137、停止中 0、ゾンビ 2 %CPU: 13.3 us、3.3 sy、0.0 ni、83.3 id、0.0 wa、0.0 hi、0.0 si、0.0 st KiB メモリ: 合計 3880940、空き 1589832、使用済み 885648、バフ/キャッシュ 1405460 KiB スワップ: 合計 1048572、空き 514640、使用済み 533932。使用可能なメモリ 2649412 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 18105 mysql 20 0 1453900 156888 8816 S 0.0 4.0 2:16.42 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 4) topコマンドをバッチモードで実行し、処理時間でソートする方法 結果を処理時間で並べ替えるには、バッチ モードで次の top コマンドを使用します。これは、タスクが開始されてから使用された CPU 時間の合計を示します。 ただし、Linux 上でプロセスがどのくらいの時間実行されているかを確認したい場合は、次の記事を参照してください。 Linux でプロセスがどのくらい実行されているかを確認する 5 つの方法 # トップ -bc -o TIME+ | ヘッド -n 20 トップ - 06:45:56 8 日間稼働、20:28、ユーザー 1 人、負荷平均: 0.56、0.77、0.81 タスク: 合計 148、実行中 1、スリープ中 146、停止中 0、ゾンビ 1 %CPU: 0.0 us、3.1 sy、0.0 ni、96.9 id、0.0 wa、0.0 hi、0.0 si、0.0 st KiB メモリ: 合計 3880940、空き 1378664、使用中 1094876、バフ/キャッシュ 1407400 KiB スワップ: 合計 1048572、空き 514640、使用済み 533932。使用可能なメモリ 2440332 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 9 ルート 20 0 0 0 0 S 0.0 0.0 63:05.70 [rcu_sched] 272 ルート 20 0 0 0 0 S 0.0 0.0 16:12.13 [xfsaild/vda1] 3882 ルート 20 0 229832 6212 1220 S 0.0 0.2 9:00.84 /usr/sbin/httpd -k 開始 1 ルート 20 0 191144 2800 1596 S 0.0 0.1 5:43.75 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 3761 ルート 20 0 68784 9820 2048 S 0.0 0.3 5:09.67 tailwatchd 3529 ルート 20 0 404380 3472 2604 S 0.0 0.1 3:24.98 /usr/sbin/rsyslogd -n 3520 ルート 20 0 574208 572 164 S 0.0 0.0 3:07.74 /usr/bin/python2 -Es /usr/sbin/tuned -l -P 444 dbus 20 0 58444 1144 612 S 0.0 0.0 2:23.90 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 18105 mysql 20 0 1453900 157152 8816 S 0.0 4.0 2:17.29 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 249 ルート 0 -20 0 0 0 S 0.0 0.0 1:28.83 [kworker/0:1H] 14 ルート 20 0 0 0 0 S 0.0 0.0 1:22.46 [ksoftirqd/1] 33 ルート 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 342 ルート 20 0 39472 2940 2752 S 0.0 0.1 1:18.17 /usr/lib/systemd/systemd-journald 5) topコマンドをバッチモードで実行し、結果をファイルに保存する方法 トラブルシューティングの目的で top コマンドの出力を他のユーザーと共有する場合は、次のコマンドを使用して出力をファイルにリダイレクトします。 # トップ -bc | ヘッド -35 > トップレポート.txt # cat トップレポート.txt トップ - 06:47:11 8 日間稼働、20:30、ユーザー 1 人、負荷平均: 0.67、0.77、0.81 タスク: 合計 133、実行中 4、スリープ中 129、停止中 0、ゾンビ 0 %CPU: 59.4 us、12.5 sy、0.0 ni、28.1 id、0.0 wa、0.0 hi、0.0 si、0.0 st KiB メモリ: 合計 3880940、空き 1596268、使用中 843284、バッファ/キャッシュ 1441388 KiB スワップ: 合計 1048572、空き 514640、使用済み 533932。使用可能なメモリ 2659084 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 9686 daygeekc 20 0 406132 62184 43448 R 94.1 1.6 0:00.34 /opt/cpanel/ea-php56/root/usr/bin/php-cgi 9689 誰もいない 20 0 256588 24428 1184 S 5.9 0.6 0:00.01 /usr/sbin/httpd -k 開始 1 ルート 20 0 191144 2800 1596 S 0.0 0.1 5:43.79 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 ルート 20 0 0 0 0 S 0.0 0.0 0:00.32 [kthreadd] 3 ルート 20 0 0 0 0 S 0.0 0.0 0:28.11 [ksoftirqd/0] 5 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 ルート rt 0 0 0 0 S 0.0 0.0 0:33.96 [移行/0] 8 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 ルート 20 0 0 0 0 R 0.0 0.0 63:05.82 [rcu_sched] 10 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-drain] 11 ルート rt 0 0 0 0 S 0.0 0.0 0:08.79 [ウォッチドッグ/0] 12 ルート rt 0 0 0 0 S 0.0 0.0 0:08.82 [ウォッチドッグ/1] 13 ルート rt 0 0 0 0 S 0.0 0.0 0:44.28 [移行/1] 14 ルート 20 0 0 0 0 S 0.0 0.0 1:22.46 [ksoftirqd/1] 16 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/1:0H] 18 ルート 20 0 0 0 0 S 0.0 0.0 0:00.01 [kdevtmpfs] 19 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 20 ルート 20 0 0 0 0 S 0.0 0.0 0:01.35 [khungtaskd] 21 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.02 [書き戻し] 22 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 23 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [バイオセット] 24 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 25 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 26 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [edac-poller] 33 ルート 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 34 ルート 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd] 35 ルート 39 19 0 0 0 S 0.0 0.0 0:12.80 [khugepaged] 36 ルート 0 -20 0 0 0 S 0.0 0.0 0:00.00 [暗号] 指定したフィールドで結果を並べ替える方法 top コマンドの最新バージョンでは、f キーを押してフィールド管理インターフェイスに入ります。 新しいフィールドを使用して並べ替えるには、上/下矢印を使用して正しいオプションを選択し、s キーを押して並べ替えます。最後に、q キーを押してこのウィンドウを終了します。 現在のソートフィールドが %CPU であるウィンドウ 1:Def のフィールド管理 上/下ボタンで移動し、右ボタンで移動を選択し、左ボタンで確定します。 'd' または は表示を切り替え、 's' は並べ替えを設定します。終了するには 'q' または を使用してください。 PID = プロセスID nsUTS = UTS名前空間Inode USER = 実効ユーザー名 LXC = LXC コンテナ名 PR = 優先度 RSan = RES 匿名 (KiB) NI = ナイス値 RSfd = RES ファイルベース (KiB) VIRT = 仮想イメージ (KiB) RSlk = RES ロック (KiB) RES = 常駐サイズ (KiB) RSsh = RES 共有 (KiB) SHR = 共有メモリ (KiB) CGNAME = 制御グループ名 S = プロセスステータス NU = 最後に使用されたNUMAノード %CPU = CPU 使用率 %MEM = メモリ使用量 (RES) TIME+ = CPU時間、100分の1 COMMAND = コマンド名/行 PPID = 親プロセス pid UID = 実効ユーザーID RUID = 実ユーザーID RUSER = 実ユーザー名 SUID = 保存されたユーザー ID SUSER = 保存されたユーザー名 GID = グループID GROUP = グループ名 PGRP = プロセス グループ ID TTY = 制御 TTY TPGID = Tty プロセス グループ ID SID = セッションID nTH = スレッド数 P = 最後に使用された CPU (SMP) 時間 = CPU時間 SWAP = スワップサイズ (KiB) CODE = コードサイズ (KiB) DATA = データ+スタック (KiB) nMaj = メジャーページフォールト nMin = マイナーページフォールト nDRT = ダーティページ数 WCHAN = 関数内でスリープ フラグ = タスクフラグ CGROUPS = コントロールグループ SUPGIDS = 補助グループ ID SUPGRPS = 補助グループ名 TGID = スレッドグループID OOMa = OOMEM調整 OOMs = OOMEM スコア現在 ENVIRON = 環境変数 vMj = 主要断層デルタ vMn = マイナーフォルトデルタ USED = メモリ+スワップサイズ (KiB) nsIPC = IPC 名前空間 Inode nsMNT = MNT 名前空間 Inode nsNET = NET 名前空間 Inode nsPID = PID名前空間Inode nsUSER = USER 名前空間 Inode top コマンドの古いバージョンの場合は、shift+f または shift+o を押して、並べ替え用のフィールド管理インターフェイスに入ります。 新しいフィールドを使用して並べ替えるには、適切な並べ替えフィールド文字を選択し、Enter キーを押して並べ替えます。 現在のソートフィールド: ウィンドウ 1:Def の N フィールド文字でソートフィールドを選択し、他のキーを入力すると戻ります a: PID = プロセスID b: PPID = 親プロセスPID c:RUSER = 実ユーザー名 d: UID = ユーザーID e: USER = ユーザー名 f: GROUP = グループ名 g: TTY = 制御TTY h: PR = 優先度 i: NI = ナイス値 j: P = 最後に使用されたCPU (SMP) k: %CPU = CPU使用率 l: TIME = CPU時間 m: TIME+ = CPU時間、100分の1 * N: %MEM = メモリ使用量 (RES) o: VIRT = 仮想イメージ (kb) p: SWAP = スワップされたサイズ (kb) q: RES = 常駐サイズ (kb) r: CODE = コードサイズ (kb) s: DATA = データ+スタックサイズ (kb) t: SHR = 共有メモリサイズ (kb) u: nFLT = ページフォルト数 v: nDRT = ダーティページ数 w: S = プロセスステータス x: COMMAND = コマンド名/行 y: WCHAN = 関数内でスリープ中 z: フラグ = タスクフラグ 注1: 選択した並べ替えフィールドが 画面の幅や フィールドの順序、「<」と「>」キー フィールドが 視認範囲内のものが選択されます。 注2: フィールドのソートでは内部値が使用されます。 列表示のものではありません。したがって、 TTYとWCHANフィールドは違反する 厳密な ASCII 照合シーケンス。 (WCHAN が選ばれたら恥を知れ) 要約する 上記はエディターが紹介したバッチモードでtopコマンドを実行する方法です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、エディターがすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: MySQLの水平および垂直テーブルパーティションの説明
>>: Echarts 凡例コンポーネントのプロパティとソース コード
この記事の例では、ドロップダウンリスト選択ボックスを実装するためのJavaScriptの具体的なコー...
目次序文1. Dockerをインストールする2. Dapr CLIをインストールする3. Net6 ...
pymysqlをインストールするpip install pymysql 2|0pymysqlの使用2...
目次1. 関数の抽出2. 重複した条件付きスニペットを結合する3. 条件分岐文を関数に抽出する4. ...
1. doctypeの役割、厳密モードと混合モードの違い、そしてその重要性1. 構文形式: <...
目次docker システム df docker システム プルーンNoneオブジェクトをクリーンアッ...
トランザクション ログには、関連するデータベースに対する操作が記録され、データベースの回復に関連する...
King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...
目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...
CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...
データベース内のテーブルのフィールドとプロパティをエクスポートし、テーブルを作成してWordに保存す...
目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...
1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...
これは新しいバージョンではもう不可能なようで、推奨されません。そうでない場合は、ソフト リンクを直接...
目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...