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

トップ25の最高のLinuxパフォーマンス監視およびデバッグツール

Linux 環境で作業するときに役立つ 25 のパフォーマンス監視およびデバッグ ツールをコンパイルしました。このリストは決して包括的でも信頼できるものでもありません.

ただし、このリストには、特定のデバッグおよび監視シナリオに適したツールを試して選択するのに十分なツールが含まれています。

1. SAR

sar ユーティリティを使用すると、次の 2 つのことができます。1) システムのリアルタイム パフォーマンス (CPU、メモリ、I/O など) を監視する 2) バックグラウンドでパフォーマンス データを継続的に収集し、履歴データを分析して特定する

Sar は sysstat パッケージの一部です。以下は、sar ユーティリティを使用して実行できることの一部です。

  • 全体的な CPU 使用率
  • 個々の CPU 統計
  • 使用済みおよび使用可能なメモリ
  • 使用済みおよび使用可能なスワップ スペース
  • システムの全体的な I/O アクティビティ
  • 個々のデバイスの I/O アクティビティ
  • コンテキスト切り替え統計
  • キューを実行して平均データをロード
  • ネットワーク統計
  • 特定の時間の sar データをレポートする
  • その他多数..

次の sar コマンドは、システムの CPU 統計を 3 回 (1 秒間隔で) 表示します。

次の「sar -b」コマンドは、I/O 統計を報告します。 「1 3」は、sar -b が 1 秒ごとに合計 3 回実行されることを示します。

$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:56:28 PM       tps      rtps      wtps   bread/s   bwrtn/s
01:56:29 PM    346.00    264.00     82.00   2208.00    768.00
01:56:30 PM    100.00     36.00     64.00    304.00    816.00
01:56:31 PM    282.83     32.32    250.51    258.59   2537.37
Average:       242.81    111.04    131.77    925.75   1369.90

その他の SAR の例:SAR (sysstat) のインストール/構成方法と 10 の便利な SAR コマンドの例

2. Tcpdump

tcpdump は、ネットワーク パケット アナライザーです。 tcpdump を使用すると、パケットをキャプチャして、パフォーマンスのボトルネックを分析できます。

次の tcpdump コマンドの例は、キャプチャされたパケットを ASCII で表示します。

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

tcpdump を使用すると、いくつかのカスタム条件に基づいてパケットをキャプチャできます。たとえば、特定のポートを通過するパケットのキャプチャ、2 つの特定のホスト間の TCP 通信のキャプチャ、特定のプロトコル タイプに属するパケットのキャプチャなどです。

その他の tcpdump の例:15 の TCPDUMP コマンドの例

3.ナギオス

Nagios は、IT インフラストラクチャ内のほぼすべてを監視できるオープン ソースの監視ソリューションです。たとえば、サーバーがダウンした場合はシステム管理チームに通知を送信し、データベースがダウンした場合は DBA チームにページングし、Web サーバーがダウンした場合は適切なチームに通知できます。

また、さまざまなサービスの警告およびクリティカルのしきい値レベルを設定して、問題に積極的に対処するのに役立てることもできます。たとえば、ディスク パーティションが 80% いっぱいになったときにシステム管理チームに通知できます。これにより、問題が重大になる前に、システム管理チームがスペースを追加するための十分な時間を確保できます。

Nagios には、IT インフラストラクチャ全体の状態を監視できる非常に優れたユーザー インターフェイスもあります。

以下は、Nagios を使用して監視できるものの一部です:

  • あらゆるハードウェア (サーバー、スイッチ、ルーターなど)
  • Linux サーバーと Windows サーバー
  • データベース (Oracle、MySQL、PostgreSQL など)
  • OS で実行されているさまざまなサービス (sendmail、nis、nfs、ldap など)
  • ウェブ サーバー
  • カスタム アプリケーション
  • など

その他の Nagios の例:Nagios のインストールと構成、リモート Windows マシンの監視、およびリモート Linux サーバーの監視方法。

4.イオスタット

iostat は、CPU、ディスク I/O、および NFS 統計を報告します。以下は、iostat コマンドの例の一部です。

引数なしの iostat は、以下に示すように、CPU 使用率に関する情報と、システム上のすべてのパーティションに関する I/O 統計を表示します。

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

デフォルトでは、iostat はシステムで使用可能なすべてのディスクの I/O データを表示します。特定のデバイス (たとえば、/dev/sda) の統計を表示するには、以下に示すようにオプション -p を使用します。

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

5. Mpstat

mpstat はプロセッサ統計を報告します。以下は、mpstat コマンドの例の一部です。

オプション -A は、以下に示すように、mpstat コマンドで表示できるすべての情報を表示します。これは実際には「mpstat -I ALL -u -P ALL」コマンドと同等です。

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.

mpstat オプション -P ALL は、以下に示すように、すべての個々の CPU (またはコア) をその統計とともに表示します。

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. Vmstat

vmstat は、仮想メモリの統計を報告します。以下は vmstat コマンドの例の一部です。

デフォルトでは、vmstat は以下に示すようにメモリ使用量 (スワップを含む) を表示します。

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0
..

iostat と vmstat は、sar ユーティリティの一部です。 iostat と vmstat を機能させるには、sysstat パッケージをインストールする必要があります。

その他の例:24 iostat、vmstat、および mpstat コマンドの例

7. PSコマンド

プロセスは、プログラムの実行中のインスタンスです。 Linux はマルチタスク オペレーティング システムです。つまり、一度に複数のプロセスをアクティブにすることができます。 ps コマンドを使用して、システムで実行中のプロセスを確認してください。

ps コマンドは、システムのパフォーマンスのボトルネックを特定するのに役立つ、実行中のプロセスに関する多くの追加情報も提供します。

以下は ps コマンドの例です。

-u オプションを使用して、特定のユーザー名に属するプロセスを表示します。ユーザー名が複数ある場合は、カンマで区切ります。以下の例は、ユーザー wwwrun または postfix が所有するすべてのプロセスを表示します。

$ ps -f -u wwwrun,postfix
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun    7495  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u

以下の例では、プロセス ID とコマンドを階層で表示しています。 –forest は、プロセス ツリーのアスキー アートを表示する ps コマンドの引数です。このツリーから、再帰的に分岐した親プロセスと子プロセスを特定できます。

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7
  514  |   \_ -bash
17484  \_ sshd: root@pts/11
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5
 4302  |   \_ -bash

その他の ps の例:プロセス監視のための 7 つの実用的な PS コマンドの例

8.無料

Free コマンドは、システムの物理 (RAM) およびスワップ メモリに関する情報を表示します。

以下の例では、このシステムの合計物理メモリは 1GB です。以下に表示される値は KB 単位です。

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

次の例では、RAM とスワップを含むシステムの合計メモリが表示されます。

次のコマンドで:

  • オプション m は値を MB で表示します
  • オプション t は、物理メモリとスワップ メモリの値の合計である「合計」行を表示します
  • オプション o は、上記の例のバッファ/キャッシュ ラインを非表示にするものです。
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9.トップ

Top コマンドは、システム内で実行中のすべてのプロセスを特定の列順に表示します。これにより、情報がリアルタイムで表示されます。

トップを終了せずにプロセスを強制終了できます。強制終了する必要があるプロセスを見つけたら、「k」を押してプロセス ID を尋ね、送信するように信号を送ります。その特定の PID を強制終了する権限があれば、正常に強制終了されます。

PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus

特定のユーザー プロセスを top コマンド出力のみに表示するには、top -u を使用します。

$ top -u geek

unix top コマンドの実行中に、以下に示すようにユーザー名を尋ねる u を押します。

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

その他のトップ例:15 の実用的な Linux トップ コマンドの例

10. Pマップ

pmap コマンドは、特定のプロセスのメモリ マップを表示します。 pid を引数として pmap コマンドに渡す必要があります。

次の例では、現在の bash シェルのメモリ マップを表示します。この例では、5732 が bash シェルの PID です。

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/ld-2.5.so
003b1000   1272K r-x--  /lib/libc-2.5.so
00520000      8K r-x--  /lib/libdl-2.5.so
0053f000     12K r-x--  /lib/libtermcap.so.2.0.8
0084d000     76K r-x--  /lib/libnsl-2.5.so
00c57000     32K r-x--  /lib/libnss_nis-2.5.so
00c8d000     36K r-x--  /lib/libnss_files-2.5.so
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

pmap -x は、メモリ マップに関する追加情報を提供します。

$  pmap -x 5732
5732:   -bash
Address   Kbytes     RSS    Anon  Locked Mode   Mapping
00393000     104       -       -       - r-x--  ld-2.5.so
003b1000    1272       -       -       - r-x--  libc-2.5.so
00520000       8       -       -       - r-x--  libdl-2.5.so
0053f000      12       -       -       - r-x--  libtermcap.so.2.0.8
0084d000      76       -       -       - r-x--  libnsl-2.5.so
00c57000      32       -       -       - r-x--  libnss_nis-2.5.so
00c8d000      36       -       -       - r-x--  libnss_files-2.5.so
b7d6c000    2048       -       -       - r----  locale-archive
bfd10000      84       -       -       - rw---    [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

プロセス マップのデバイス情報を表示するには、「pamp -d pid」を使用します。

11.ネット統計

Netstat コマンドは、ネットワーク接続、ルーティング テーブル、インターフェース統計、マスカレード接続、マルチキャスト メンバーシップなど、さまざまなネットワーク関連情報を表示します。

以下は netstat コマンドの例です。

以下に示すように、netstat -a を使用して、すべてのポート (リスニングと非リスニングの両方) を一覧表示します。

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

次の netstat コマンドを使用して、プログラムが実行されているポートを確認します。

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

次の netstat コマンドを使用して、特定のポートを使用しているプロセスを見つけます。

# netstat -an | grep ':80'

その他の netstat の例:10 個の Netstat コマンドの例

12. IPTraf

IPTraf は、IP ネットワーク監視ソフトウェアです。以下は、IPTraf の主な機能の一部です:

  • コンソール ベース (テキスト ベース) のユーティリティです。
  • これは、ネットワークを通過する IP トラフィックを表示します。これは、TCP フラグ、パケット数とバイト数、ICMP、OSPF パケット タイプなどを表示します。
  • 拡張インターフェースの統計情報を表示します (IP、TCP、UDP、ICMP、パケット サイズとカウント、チェックサム エラーなどを含む)
  • LAN モジュールがホストを自動的に検出し、そのアクティビティを表示します
  • 選択的なプロトコル トラフィックを表示するためのプロトコル表示フィルタ
  • 高度なロギング機能
  • イーサネット インターフェイスとは別に、FDDI、ISDN、SLIP、PPP、およびループバックもサポートします
  • ユーティリティを全画面モードで実行することもできます。これにはテキストベースのメニューもあります。

詳細:IPTraf ホームページ。 IPTraf のスクリーンショット。

13.トレース

Strace は、Linux 環境での実行可能ファイルの実行のデバッグとトラブルシューティングに使用されます。プロセスが使用するシステム コールと、プロセスが受信したシグナルを表示します。

Strace は、特定のプログラムのシステム コールとシグナルを監視します。ソースコードがなく、プログラムの実行をデバッグしたい場合に役立ちます。 strace は、バイナリの実行シーケンスを最初から最後まで提供します。

オプション -e を使用して実行可能ファイル内の特定のシステム コールをトレースする

デフォルトでは、strace は指定された実行可能ファイルのすべてのシステム コールを表示します。次の例は、Linux ls コマンドの strace の出力を示しています。

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

特定のシステム コールのみを表示するには、以下に示すように strace -e オプションを使用します。

$ strace -e open ls
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY)  = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libacl.so.1", O_RDONLY)      = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libattr.so.1", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3

その他の strace の例:Linux でプログラムの実行をデバッグするための 7 つの Strace の例

14. Lsof

lsof は ls open files の略で、システムで開いているすべてのファイルを一覧表示します。開いているファイルには、ネットワーク接続、デバイス、およびディレクトリが含まれます。 lsof コマンドの出力には、次の列が含まれます:

  • COMMAND プロセス名。
  • PID プロセス ID
  • USER ユーザー名
  • FD ファイル記述子
  • TYPE ファイルのノード タイプ
  • DEVICE デバイス番号
  • SIZE ファイル サイズ
  • NODE ノード番号
  • NAME はファイル名のフル パスです。

システムの開いているすべてのファイルを表示するには、以下に示すように、パラメーターを指定せずに lsof コマンドを実行します。

# lsof | more
COMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME
init          1       root  cwd       DIR        8,1      4096          2 /
init          1       root  rtd       DIR        8,1      4096          2 /
init          1       root  txt       REG        8,1     32684     983101 /sbin/init
init          1       root  mem       REG        8,1    106397     166798 /lib/ld-2.3.4.so
init          1       root  mem       REG        8,1   1454802     166799 /lib/tls/libc-2.3.4.so
init          1       root  mem       REG        8,1     53736     163964 /lib/libsepol.so.1
init          1       root  mem       REG        8,1     56328     166811 /lib/libselinux.so.1
init          1       root   10u     FIFO       0,13                  972 /dev/initctl
migration     2       root  cwd       DIR        8,1      4096          2 /
skipped..

特定のユーザーが開いているファイルを表示するには、lsof -u オプションを使用して、特定のユーザーが開いているすべてのファイルを表示します。

# lsof -u ramesh
vi      7190 ramesh  txt    REG        8,1   474608   475196 /bin/vi
sshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh->abc-12-12-12-12.

特定のファイルのユーザーを一覧表示するには、以下に示すように lsof を使用します。この例では、現在 vi を使用しているすべてのユーザーが表示されます。

# lsof /bin/vi
COMMAND  PID  USER    FD   TYPE DEVICE   SIZE   NODE NAME
vi      7258  root   txt    REG    8,1 474608 475196 /bin/vi
vi      7300  ramesh txt    REG    8,1 474608 475196 /bin/vi

15. Nトップ

Ntop は top と同じですが、ネットワーク トラフィック用です。 ntop は、ネットワークの使用状況を表示するネットワーク トラフィック モニターです。

ブラウザから ntop にアクセスして、トラフィック情報とネットワーク ステータスを取得することもできます。

以下は、ntop の主な機能の一部です:

  • ネットワーク トラフィックをプロトコル別に表示
  • いくつかの基準に基づいてネットワーク トラフィックの出力を並べ替える
  • ネットワーク トラフィック統計の表示
  • RRD を使用してネットワーク トラフィック統計を保存する機能
  • ユーザーの身元を特定し、OS をホストする
  • IT トラフィックを分析して表示する能力
  • ルーターとスイッチの NetFlow/sFlow コレクターとして機能する能力
  • RMON と同様のネットワーク トラフィック統計を表示します
  • Linux、MacOS、Windows で動作

詳細:Ntop ホームページ

16. GkrellM

GKrellM は、GNU Krell Monitors、または GTK Krell Meters の略です。さまざまなシステム リソースを監視する、GTK+ ツールキット ベースの監視プログラムです。 UI はスタック可能です。つまり、必要な数の監視オブジェクトを重ねて追加できます。他のデスクトップ UI ベースの監視ツールと同様に、CPU、メモリ、ファイル システム、ネットワークの使用状況などを監視できます。ただし、プラグインを使用すると、外部アプリケーションを監視できます。

詳細:GkrellM ホームページ

17. w とアップタイム

システムのパフォーマンスを監視している間、w コマンドはシステムにログオンしているユーザーを認識します。

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0            24Oct11  21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0    192.168.1.10  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]
john     pts/0    192.168.1.11  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]
jason    pts/0    192.168.1.12  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]

ログオンしているすべてのユーザーについて、次の情報が表示されます:

  • ユーザー名
  • tty 情報
  • リモート ホストの IP アドレス
  • ユーザーのログイン時間
  • ユーザーがアイドル状態だった時間
  • JCPU と PCUP
  • ユーザーが実行している現在のプロセスのコマンド

w コマンドの出力の 1 行目は、uptime コマンドの出力と似ています。以下が表示されます:

  • 現在の時間
  • システムが稼動している期間
  • 現在システムにログオンしているユーザーの総数
  • 過去 1、5、15 分間の負荷平均

アップタイム情報のみが必要な場合は、uptime コマンドを使用してください。

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

w コマンドと uptime コマンドの両方が /var/run/utmp データ ファイルから情報を取得することに注意してください。

18. /proc

/proc は仮想ファイル システムです。たとえば、ls -l /proc/stat を実行すると、サイズが 0 バイトであることがわかりますが、「cat /proc/stat」を実行すると、ファイル内のコンテンツが表示されます。 /P>

ls -l /proc を実行すると、数字だけのディレクトリがたくさん表示されます。これらの番号はプロセス ID を表し、この番号の付いたディレクトリ内のファイルは、その特定の PID を持つプロセスに対応します。

以下は、番号が付けられた各ディレクトリの下にある重要なファイルです (プロセスごとに):

  • cmdline – コマンドのコマンド ライン。
  • environ – 環境変数。
  • fd – 適切なファイルにリンクされているファイル記述子が含まれています。
  • limits – プロセスに対する特定の制限に関する情報が含まれています。
  • マウント – マウント関連情報

以下は、番号が付けられた各ディレクトリの下にある重要なリンクです (プロセスごと):

  • cwd – プロセスの現在の作業ディレクトリへのリンク
  • exe – プロセスの実行可能ファイルへのリンク
  • root – プロセスのルート ディレクトリへのリンク

その他の /proc の例:Linux の /proc ファイル システムを調べる

19. KDE システム ガード

これは KSysGuard とも呼ばれます。 KDE を実行する Linux デスクトップでは、このツールを使用してシステム リソースを監視できます。ローカル システムの監視とは別に、リモート システムも監視できます。

KDE デスクトップを実行している場合は、[アプリケーション] -> [システム] -> [システム モニター] に移動して、KSysGuard を起動します。コマンドラインから ksysguard と入力して起動することもできます。

このツールには、次の 2 つのタブが表示されます:

  • プロセス テーブル – すべてのアクティブなプロセスを表示します。ここからプロセスの優先度をソート、強制終了、または変更できます
  • システム負荷 - CPU、メモリ、ネットワークの使用状況をグラフで表示します。これらのグラフは、これらのグラフのいずれかを右クリックしてカスタマイズできます。

リモート ホストに接続して監視するには、[ファイル] メニュー -> [リモート マシンの監視] をクリックし、ホストの IP アドレス、接続方法 (ssh など) を指定します。これにより、リモート マシンのユーザー名/パスワードが求められます。接続すると、[プロセス テーブル] タブと [システム負荷] タブにリモート マシンのシステム使用状況が表示されます。

20. GNOME システム モニター

GNOME を実行する Linux デスクトップでは、このツールを使用して、グラフィカル インターフェイスからプロセス、システム リソース、およびファイル システムを監視できます。監視とは別に、この UI ツールを使用してプロセスを強制終了したり、プロセスの優先度を変更したりすることもできます。

GNOME デスクトップを実行している場合は、[システム] -> [管理] -> [システム モニター] に移動して、GNOME システム モニターを起動します。コマンドラインから gnome-system-monitor と入力して起動することもできます。

このツールには次の 4 つのタブがあります:

  • システム – Linux ディストリビューションのバージョン、システム リソース、ハードウェア情報などのシステム情報を表示します。
  • プロセス – さまざまなフィールドに基づいて並べ替えることができるすべてのアクティブなプロセスを表示します
  • リソース – CPU、メモリ、ネットワークの使用状況を表示
  • ファイル システム – 現在マウントされているファイル システムに関する情報を表示します

詳細:GNOME システム モニターのホームページ

21.コンキー

Conky はシステム モニターまたは X です。Conky は、オブジェクトと呼ばれるものを使用して UI に情報を表示します。デフォルトでは、さまざまな監視情報 (CPU、メモリ、ネットワーク、ディスクなど) を表示する conky にバンドルされている 250 を超えるオブジェクトがあります。 IMAP、POP3、いくつかのオーディオ プレーヤーをサポートしています。

スクリプトを使用して独自のオブジェクトを作成することにより、外部アプリケーションを監視および表示できます。監視情報は、テキスト、グラフ、進行状況バーなど、さまざまな形式で表示できます。このユーティリティは非常に構成可能です。

詳細:Conky のスクリーンショット

22.サボテン

Cacti は、RRDTool の PHP ベースの UI フロントエンドです。 Cacti は、グラフの生成に必要なデータを MySQL データベースに保存します。

以下は、Cacti のハイレベルな機能の一部です:

  • データ収集を実行し、MySQL データベース (またはラウンド ロビン アーカイブ) に保存する能力
  • いくつかの高度なグラフ作成機能が利用可能です (GPRINT グラフ項目のグループ化、グラフの自動パディング、CDEF 数学関数を使用したグラフ データの操作、すべての RRDTool グラフ項目がサポートされています)
  • データ ソースは、グラフ用にローカル データまたはリモート データを収集できます
  • ラウンド ロビン アーカイブ (RRA) 設定を完全にカスタマイズする機能
  • ユーザーはカスタム スクリプトを定義してデータを収集できます
  • データ収集のための SNMP サポート (php-snmp、ucd-snmp、または net-snmp)
  • 組み込みのポーラーは、カスタム スクリプトの実行、SNMP データの取得、RRD ファイルの更新などに役立ちます。
  • 非常に柔軟なグラフ テンプレート機能
  • ユーザーフレンドリーでカスタマイズ可能なグラフ表示オプション
  • サボテンのフロントエンドにアクセスするためのさまざまな権限セットを持つさまざまなユーザーを作成します
  • 個々のユーザーに対して詳細な権限レベルを設定できます
  • その他多数..

詳細:サボテンのホームページ

23. Vnstat

vnstat は、システム上のインターフェースのネットワーク トラフィックを表示およびログに記録するコマンド ライン ユーティリティです。これは、カーネルが提供するネットワーク統計に依存します。そのため、vnstat は、ネットワーク トラフィックの監視とログ記録のためにシステムに負荷を追加しません。

引数なしで vnstat を実行すると、次の情報を含む簡単な要約が得られます:

  • /var/lib/vnstat/ の下にある vnStat データベースが最後に更新された時刻
  • 特定のインターフェースの統計収集を開始したときから
  • 過去 2 か月および過去 2 日間のネットワーク統計データ (送信バイト数、受信バイト数)。
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |

	 daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

「vnstat -t」または「vnstat –top10」を使用して、全期間の上位 10 日のトラフィックを表示します。

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

その他の vnstat の例:VNStat を使用してネットワーク トラフィックを監視およびログに記録する方法

24. Hトップ

htop は ncurses ベースのプロセス ビューアーです。これは top に似ていますが、より柔軟で使いやすいです。マウスを使用して htop を操作できます。垂直方向にスクロールして完全なプロセス リストを表示し、水平方向にスクロールしてプロセスの完全なコマンド ラインを表示できます。

htop 出力は、1) ヘッダー、2) 本文、3) フッターの 3 つのセクションで構成されます。

ヘッダー 次の 3 つのバーといくつかの重要なシステム情報が表示されます。これらは htop セットアップ メニューから変更できます。

  • CPU 使用率:バーの最後に %used in テキストが表示されます。バー自体はさまざまな色で表示されます。青が低優先度、緑が通常、赤がカーネル。
  • メモリ使用量
  • スワップの使用

本文 %CPU 使用率でソートされたプロセスのリストを表示します。矢印キー、ページアップ、ページダウンキーを使用してプロセスをスクロールします。

フッター htop メニュー コマンドを表示します。

詳細:HTOP スクリーンショットと例

25.ソケット統計 – SS

ss はソケット統計を表します。これにより、netstat コマンドと同様の情報が表示されます。

すべてのリッスン ソケットを表示するには、以下に示すように ss -l を実行します。

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

以下は、確立された接続のみを表示します。

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)

以下は、ソケットの要約統計を表示します。これは、タイプ別に分類されたソケットの総数を表示します。

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11

Transport Total     IP        IPv6
*         721       -         -
RAW       0         0         0
UDP       13        10        3
TCP       16        7         9
INET      29        17        12
FRAG      0         0         0

Linux 環境のパフォーマンスを監視するために、どのツールを使用していますか?お気に入りのパフォーマンス監視ツールを見逃していませんか?コメントを残してください。


Linux
  1. 4 CLIベースのLinuxパフォーマンス監視ツール:top、htop、ps、vmstat

  2. 5つの最高のターミナルベースのLinux監視ツール

  3. トップ 20 の最高の Red Hat Linux 認定資格とコース

  1. Linuxでスクリーンショットを撮って編集するための最高のツール

  2. トップ 5 の最高のシステム監視ツール

  3. Linux パフォーマンスの監視とチューニングの概要

  1. 最高の Linux パーティション マネージャー ツール:レビューおよび比較されたトップ 8

  2. ベスト 20 の Linux ビデオ会議ソフトウェアとツール

  3. Linux メール サーバー ソフトウェアとソリューションのトップ 20