GNU/Linux >> Linux の 問題 >  >> Linux

Linuxプロセスを監視するための20psのコマンド例

Linuxシステムの監視は、システムがスムーズに実行されていることを確認し、ボトルネックを回避するために、Linuxユーザーまたはシステム管理者が24時間実行する必要がある最も典型的なタスクの1つです。 Linuxには、システムの監視に役立ついくつかの組み込みツールが付属しています。これらの1つはps(プロセスステータス)です。 )実行中のプロセス、およびプロセスに関連する他のメトリック( CPU のパーセンテージなど)を具体的に監視するコマンド およびメモリ 利用。 psコマンドは、RAMベースまたは仮想ファイルシステムである/procファイルシステムを読み取ります。

このガイドでは、さらに深く掘り下げて、最も一般的に使用される20のpsコマンドについて説明します。

1)シェルでのリストプロセス

Linuxでのpsコマンドの最も単純な形式は、現在のシェルで実行中のプロセスを一覧表示します。これは以下に説明できます。

[[email protected] ~]$ ps
 PID TTY          TIME CMD
 1437 pts/0    00:00:00 bash
 1465 pts/0    00:00:00 ps
[[email protected] ~]$

いくつかの用語を定義しましょう:

  • PID:これはプロセスIDです。
  • TTY:これは、プロセスを開始して制御している端末を指します。
  • 時間:これは、プロセスが実行された時間/累積時間です。
  • CMD:プロセスを開始したコマンドの名前。

2)端末に関連付けられたプロセスの一覧表示

これは、シェルにプロセスをリストするのとよく似ています。現在実行している端末に関連付けられているプロセスを一覧表示するには、次のコマンドを実行します。

[[email protected] ~]$ ps -T
  PID  SPID TTY          TIME CMD
 1437  1437 pts/0    00:00:00 bash
13357 13357 pts/0    00:00:00 ps
[[email protected] ~]$

3)システムで実行中のすべてのプロセスを表示する

Linuxシステムで実行中のすべてのプロセスの概要を取得するには、-Aフラグを使用します。 示されているように:

[[email protected] ~]$ ps -A

または、–eフラグを使用することもできます 示されているように。引き続き同様の結果が得られます。

[[email protected] ~]$ ps -e

4)出力をBSD形式で表示する

プロセスをBSD形式で一覧表示するには、コマンドを実行します

$ ps -aux

コマンドを分解してみましょう:

-aフラグは、すべてのユーザーからのすべてのプロセスを表示するようにpsに指示します。ただし、これには特定の端末に関連付けられたプロセスは含まれません。

-uフラグは、ユーザー指向の形式を意味します。実行中のプロセスに関連するより詳細な情報を提供します。

xフラグは、通常、システムの起動時に開始されるプロセスとバックグラウンドプロセスを一覧表示します。

場所:

  • USER –これはプロセスを実行しているユーザーを指定します
  • PID –これはプロセスのプロセスIDです
  • %CPU –これは各プロセスのCPU使用率です
  • %MEM –これはプロセスによって使用された物理メモリの%です
  • VSZ –これは各プロセスの仮想メモリのサイズ(キロバイト単位)です
  • RSS –これはプロセスによって使用されている物理メモリのサイズ/量です
  • STAT –これはプロセス状態コードを指します(例:S(スリープ)、Z(ゾンビ)、R(実行中)
  • START –これはプロセスの実行を開始した時間です

5)UNIX形式での出力の表示

UNIX形式で出力を表示する場合は、 -efを組み合わせてpsコマンドを実行します。 フラグ

[[email protected] ~]$ ps -ef

-eフラグは、psコマンドにすべてのプロセスを一覧表示するように指示します

-fフラグ(フルフォーマット)は、psコマンドにプロセスに関する詳細情報を一覧表示するように指示します。

スクリーンショットからいくつかの新しい用語を定義しましょう:

  • PPID:これは親プロセスIDを指します
  • C:これは、プロセスの%CPUまたはCPU使用率を指します。
  • STIME:これはコマンドが開始された時刻を指します。 STARTと同じ

6)ユーザー定義形式で出力を表示する

ユーザー定義形式の出力では、表示する列を決定することができます。 -oフラグ psコマンドの実行時に表示される列を決定します。以下の例では、 PIDのみ および開始 列が表示されます。列オプションは、psコマンドで小文字で渡されることに注意してください。

[[email protected] ~]$ ps -efo pid,start
  PID  STARTED
 1437 21:55:28
13632 01:41:16
[[email protected] ~]$

7)ユーザーの現在実行中のプロセスを表示する

特定のユーザーに関連付けられているプロセスを見つけたい場合があるため、これを実現するには、-uフラグを使用します。 示されているように」

$ps-uユーザー

または

$ ps -u uid

たとえば、ユーザー「Linuxtechi」に関連付けられているプロセスを表示するには、次のコマンドを実行します。

$ ps -u linuxtechi

または、ユーザーのuid(ユーザーID)を使用することもできます。次のコマンドを実行して、ユーザーのIDを取得できます。

$idユーザー

[[email protected] ~]$ id linuxtechi
uid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel)
[[email protected] ~]$

上記の出力から、ユーザー「linuxtechi」のuidが1000であることがはっきりとわかります。次に、psコマンドとuidを使用して、ユーザーに関連付けられているプロセスを見つけることができます。

$ ps -u 1000

rootユーザーの場合、コマンドを実行します

$ ps -u root

同様に、値が0のrootユーザーのuidを使用して確認できます

$ ps -u 0

8)グループプロセスの表示

グループプロセスの一覧表示は、ユーザープロセスの一覧表示に似ています。グループIDを指定してグループの名前を渡すことにより、psコマンドを使用してグループプロセスを一覧表示できます。

たとえば、グループ「apache」に関連付けられているプロセスを表示するには、次のコマンドを実行します。

$ ps-fG<グループ名>

$ ps -fG apache

または、グループ名の代わりにグループID(gid)を渡すこともできます。 / etc/groupファイルからGIDを取得できます。

たとえば、この場合、ApacheのグループIDは48です。したがって、グループ名「 apache」を指定する代わりに ’は単にGID番号を指定します。 48。

$ ps -fG 48

9)PIDとPPIDを使用したプロセスの表示

Linuxプロセスは、 PIDを使用して表示することもできます (プロセスID )および PPID(親プロセスID) 。 PPIDは、プロセスの親のPIDを指します。

PID別にプロセスを一覧表示するには、

を実行します。
$ ps -fp PID

たとえば、PID 1286に関連付けられているプロセスを一覧表示するには、次のコマンドを実行します。

[[email protected] ~]$ ps -fp 1286
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   1286  1285  0 03:49 ?        00:00:00 pickup -l -t unix -u
[[email protected] ~]$

PPID別にプロセスを一覧表示するには、

を実行します。

$ ps -f –ppid

たとえば、PPID31903が所有するプロセスを一覧表示するには

$ ps -f --ppid 31903

10)プロセス名を使用してPIDを検索する

ほとんどの場合、プロセス名のPIDはわかりません。これを行うには、-Cフラグを使用します 示されているように

$ ps-C<プロセス名>

[[email protected] ~]$ ps -C firefox
  PID TTY          TIME CMD
 1446 tty2     00:00:04 firefox
[[email protected] ~]$

11)TTYを使用したプロセスの表示

tty値でプロセスをフィルタリングする場合は、-tフラグを使用します。 。たとえば、tty1に接続されているプロセスを表示するには、次のようにpsコマンドを実行します。

$ ps -ft tty1

12)プロセスツリーの印刷

プロセスツリーは、Linuxシステムでプロセスがどのようにリンクされているかを示します。親がいないプロセスは、initまたはsystemdを介してシステムにリンクします。印刷には、次の形式を使用する必要があります。

$ ps -e --forest

13)スレッドプロセスに従ってプロセスをフィルタリングします

プロセススレッドを使用してプロセスをフィルタリングするには、-Lフラグを使用します 示されているように、

$ ps -L 1446

14)リアルタイムのプロセス監視

監視ユーティリティを使用して、プロセスに関する静的情報を監視できます。以下に示すように、出力は毎秒再生されます

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head'

このコマンドは、pid、ppid、cmd、%mem、および%cpu列を出力し、%CPU使用率を並べ替えている間、1秒ごとに統計を監視します。 降順。

15)Linuxマシンのパフォーマンスの問題のトラブルシューティング

システムが低速または過負荷の場合、CPUとメモリの使用量が最も多いことで最も実行中のプロセスを特定できます

次のpsコマンドを実行して、大量のメモリを消費している上位のプロセスを一覧表示します。

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

次のpsコマンドを実行して、高いCPUを消費している上位のプロセスを一覧表示します。

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

私のシステムでの上記のpsコマンドの出力例は以下のとおりです

16)応答しないプロセスを強制終了する

psコマンドを使用すると、応答しないアプリケーションや、CPUとRAMを占有しているプロセスを強制終了できます。これを行うには、次のコマンドを使用して、その特定のアプリケーションのPIDを見つける必要があります。

$ ps -A | grep -i stress

プロセスのPIDを見つけたら、killコマンドを使用してプロセスを終了できます。例を以下に示します。

$ kill -9 2583 2584

17)すべてのプロセスインスタンスのすべてのPIDを一覧表示します

次の構文を使用して、プロセスに関連付けられているすべてのPIDを一覧表示できます。

$ ps-C<プロセス名>-opid =

たとえば、httpd Webサーバーに関連付けられているPIDを確認するには、次のコマンドを実行します。

$ ps -C httpd -o pid=

18)プロセスが実行されている期間を表示します

プロセスが実行されている時間を表示するには、次のコマンドを実行します。

$ ps -eo comm,etime,user

以下のpsコマンドを使用して、特定のプロセスが実行されている時間を確認します。

$ ps -o etime -p

mysqlプロセスについて知りたいとしましょう

[[email protected] ~]$  ps -C mysqld -o pid=
 3807
[[email protected] ~]$
[[email protected] ~]$ ps -o etime -p 3807
    ELAPSED
   01:13:56
[[email protected] ~]$

19)プロセスの子プロセスを一覧表示する

プロセスの子プロセスを印刷または一覧表示するには、-Cフラグを使用します 以下の構文で:

$ ps-C<プロセス名>

たとえば、httpdプロセスに関連付けられている子プロセスを一覧表示するには、

を実行します。
[[email protected] ~]$ ps -C httpd
  PID TTY          TIME CMD
31911 ?        00:00:00 httpd
31918 ?        00:00:00 httpd
31919 ?        00:00:00 httpd
31920 ?        00:00:01 httpd
31921 ?        00:00:01 httpd
31922 ?        00:00:01 httpd
[[email protected] ~]$

20)grepを使用したpsコマンドの出力のフィルタリング

psコマンドで特定の結果を取得するには、出力をgrepユーティリティツールにパイプして、検索条件を指定します。

たとえば、phpプロセスを検索または絞り込むには、次のコマンドを実行します。

$ ps -ef | grep php

Linuxシステムで実行されているプロセスの一覧表示と監視に一般的に使用される上位20のpsコマンドを一覧表示しました。これらのコマンドはすべてのLinuxディストリビューションで機能し、システムで実行されているプロセスの概要を確実に示し、CPUおよびRAMリソースを過負荷にしているプロセスを特定するのに役立ちます。このガイドは洞察に満ちていますか?ソーシャルメディアプラットフォーム間で自由に気に入って共有してください。フィードバックは大歓迎です。

また読むLinuxServerのパフォーマンスを監視するための25の上位コマンド例


Linux
  1. Linux での sa コマンドの例

  2. Linux での ac コマンドの例

  3. Linux での df コマンドの例

  1. 7 Linux df コマンドの例

  2. 8 Linux TR コマンドの例

  3. Linux での du コマンドの例

  1. Linux での rm コマンドの例

  2. Linux での ps コマンドの例

  3. w Linux でのコマンド例