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