blog

Linux パフォーマンス監視用コマンドラインツール18選

Linuxのシステム管理者として5年間ITの現場で働いてきて、システムを監視し、稼働させ続けることがいかに難しいかを実感するようになりました。このため、すべてのシステム管理者に役立つ、最もよく使われる...

Jul 1, 2025 · 16 min. read
シェア

Linuxシステムのパフォーマンス問題を日々監視・デバッグすることは、システム管理者やネットワーク管理者にとって大変な作業です。Linuxシステム管理者としてIT分野で5年間働いてきて、システムを監視し、稼働させ続けることがいかに難しいかを実感するようになりました。このため、すべてのLinux/Unixシステム管理者に役立つ、最も頻繁に使用される18のコマンドラインツールのリストを作成しました。これらのコマンドラインツールは、様々なLinuxシステムで使用することができ、パフォーマンスの問題を監視し、原因を突き止めるために使用することができます。このコマンド・ライン・ツールのリストには十分なツールが用意されているので、監視のシナリオに該当するものを選んで使用することができます。

1.トップ-Linuxプロセスモニタ

Linux用のTopコマンドは、多くのシステム管理者がLinuxのパフォーマンスを監視するためによく使用するパフォーマンス監視プログラムであり、多くのLinuxまたはUnixライクなオペレーティングシステムに含まれています。Topコマンドは、実行中およびアクティブなすべてのリアルタイムプロセスを一定の順序で表示するために使用され、表示は定期的に更新されます。このコマンドは、CPU使用率、メモリ使用率、スワップメモリ使用率、キャッシュ使用率、バッファ使用率、プロセスPID、使用コマンドなどを表示します。また、実行中のプロセスによって使用されているメモリとCPUの使用量も表示されます。top コマンドはシステム管理者がシステムを監視し、必要なときに適切なアクションを取るのに非常に便利なコマンドです。実際に top コマンドを使ってみましょう。

# トップ

Topコマンドの例については、「 LinuxでTopコマンドを使う12の例」を参照してください。

2.VmStat-仮想メモリ統計

LinuxのVmStatコマンドは、仮想メモリ、カーネル・スレッド、ディスク、システム・プロセス、I/Oブロック、割り込み、CPUアクティビティなどの統計を表示します。デフォルトでは、vmstatコマンドはLinuxシステムでは使用できません。 vmstatプログラムを含むsysstatパッケージをインストールする必要があります。コマンド・フォーマットの一般的な使用方法は次のとおりです:

[root@ithomer ~]# 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      0 105368  90900 257588    0    0     9    33    4   11  2  0 97  0  0 

vmstatの例については、 6 Linux Vmstatコマンドの例参照してください。

3.Lsofが開いているファイルをリストアップ

lsofコマンドは、多くのLinuxやUnixライクなシステムで利用可能で、一般的に、すべてのオープン・ファイルやプロセスをリストとして表示するために使用されます。開いているファイルには、ディスクファイル、ネットワークソケット、パイプ、デバイス、プロセスが含まれます。このコマンドを使用する主な状況の1つは、ディスクをマウントできず、ファイルが使用中またはオープン中であるというエラーメッセージが表示される場合です。このコマンドを使用すると、どのファイルが使用中であるかを簡単に確認できます。このコマンドの最も一般的な書式は次のとおりです:

# lsof 
COMMAND     PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME 
init          1      root  cwd       DIR      104,2     4096          2 / 
init          1      root  rtd       DIR      104,2     4096          2 / 
init          1      root  txt       REG      104,2    38652   17710339 /sbin/init 
init          1      root  mem       REG      104,2   129900     196453 /lib/ld-2.5.so 
init          1      root  mem       REG      104,2  1693812     196454 /lib/libc-2.5.so 
init          1      root  mem       REG      104,2    20668     196479 /lib/libdl-2.5.so 
init          1      root  mem       REG      104,2   245376     196419 /lib/libsepol.so.1 
init          1      root  mem       REG      104,2    93508     196431 /lib/libselinux.so.1 
init          1      root   10u     FIFO       0,17                 953 /dev/initctl 

4.Tcpdump-ネットワークパケットアナライザー

Tcpdumpは、ネットワーク上の指定されたインターフェイスで受信または送信されたTCP/IPパケットをキャプチャまたはフィルタリングするための、最も広く使われているネットワークパケットアナライザまたはパケットモニタリングプログラムの1つです。また、キャプチャしたパケットをファイルに保存して後で解析するオプションもあります。tcpdumpはほとんどすべての主要なLinuxディストリビューションで利用可能です。

# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648 
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648 
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347 

tcpdumpの使い方については、 LinuxでのTcpdumpコマンドの12の使用例を参照してください。

5.Netstat-ネットワークステータス統計

Netstat は、ネットワークに送受信されるパケットやネットワークインターフェースの統計情報を監視するためのコマンドラインツールです。システム管理者がネットワークのパフォーマンスを監視し、ネットワーク関連の問題を特定して解決するために使用できる、非常に便利なツールです。

# netstat -a | moreActive Internet connections (servers and established) 
Proto Recv-Q Send-Q Local Address               Foreign Address             State 
tcp        0      0 *:mysql                     *:*                         LISTEN 
tcp        0      0 *:sunrpc                    *:*                         LISTEN 
tcp        0      0 *:realm-rusd                *:*                         LISTEN 
tcp        0      0 *:ftp                       *:*                         LISTEN 
tcp        0      0 localhost.localdomain:ipp   *:*                         LISTEN 
tcp        0      0 localhost.localdomain:smtp  *:*                         LISTEN 
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42709 TIME_WAIT 
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42710 TIME_WAIT 
tcp        0      0 *:http                      *:*                         LISTEN 
tcp        0      0 *:ssh                       *:*                         LISTEN 
tcp        0      0 *:https                     *:*                         LISTEN 

Netstatの使用例については、「 LinuxでNetstatコマンドを使用する20の例」を参照してください。

6. Htop - Linuxプロセス監視

Htop は非常に高度な対話的リアルタイム Linux プロセス監視ツールです。 top コマンドとよく似ていますが、ユーザーフレンドリーなプロセス管理、ショートカット、プロセスの垂直・水平表示など、より多くの機能を備えています。 Htop はサードパーティツールであり、linux システムには含まれていないため、インストールするには YUM パッケージ管理ツールを使用する必要があります。

インストールするCentOSコマンド: yum install htop , インストールの詳細については、以下をお読みください。

# htop

Htopのインストールについては、 LinuxへのHtopのインストール)をお読みください。

7.Iotop-LinuxディスクI/Oの監視

Iotop コマンドも top コマンドや Htop プログラムとよく似ていますが、リアルタイムのディスク I/O やプロセスの統計情報を監視して表示する機能があります。これは、特定のプロセスやディスクの読み取りと書き込みを大量に使用するプロセスを探すときに非常に便利です。

CentOSコマンドインストール:yum install iotop

# アイオトップ

iotopのインストールと使用方法については、 LinuxへのIotopのインストール参照してください。

8. Iostat - 入出力統計

Iostat は、システムのストレージデバイスの入出力ステータスを示す統計情報を収集するために使用されるシンプルなツールです。このツールは、アプライアンス、ローカルディスク、および NFS を使用するようなリモートディスクを含むストレージデバイスのパフォーマンスの問題を追跡するためによく使用されます。

# iostat 
Linux 2.6.18-.el5 (tecmint.com)         09/13/2012 
  
avg-cpu:  %user   %nice %system %iowait  %steal   %idle 
           2.60    3.65    1.04    4.29    0.00   88.42 
  
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 
cciss/c0d0       17.79       545.80       256.52  855159769  401914750 
cciss/c0d0p1      0.00         0.00         0.00       5459       3518 
cciss/c0d0p2     16.45       533.97       245.18  836631746  384153384 
cciss/c0d0p3      0.63         5.58         3.97    8737650    6215544 
cciss/c0d0p4      0.00         0.00         0.00          8          0 
cciss/c0d0p5      0.63         3.79         5.03    5936778    7882528 
cciss/c0d0p6      0.08         2.46         2.34    3847771    3659776 

iostatの使用方法と使用例の詳細については、 6 Examples of Using iostat Command on Linuxを参照してください。

9.IPTraf - リアルタイムLAN IPモニタリング

IPTrafは、Linuxコンソール上で動作するオープンソースのリアルタイムネットワーク監視アプリケーションです。TCPタグ、ICMPの詳細、TCP/UDPトラフィックの分離、TCPコネクションパケットやバイトカウントなど、ネットワークを介したIPトラフィックの監視など、大量の情報をキャプチャします。また、TCP、UDP、IP、ICMP、非IP、IPチェックサムとエラー、インターフェイスのアクティビティなど、インターフェイスのステータスに関する一般的な情報と詳細もキャプチャします。

IPTrafツールの使用方法と詳細については、 IPTrafネットワーク監視ツールご覧ください。

10. psacct または acct - ユーザーの活動を監視します。

psacctまたはacctツールは、システム上の各ユーザーの活動を監視するために使用されます。これら2つのサービスプロセスはバックグラウンドで実行され、システム上で実行されている各ユーザのすべての活動と、これらの活動によって使用されるリソースを注意深く監視します。

システム管理者は、この2つのツールを使って、各ユーザーの行動を追跡することができます。例えば、そのユーザーが何をしているのか、どのようなコマンドを送信したのか、どれだけのリソースを使用したのか、システムにどれだけの時間滞在したのか、などです。

これらのコマンドのインストールと使用例については、psacctまたはacctを使用したユーザー活動の監視を参照してください。

11.Monit - Linux プロセスおよびサービス監視ツール

Monitは無料のオープンソースソフトウェアで、ウェブベースのプロセス監視ツールです。システムプロセス、プログラム、ファイル、フォルダ、パーミッション、トータルコード、認証コード、ファイルシステムを自動的に監視・管理します。

このソフトウェアは、Apache、MySQL、メール、FTP、ProFTP、Nginx、SSHなどのサービスを監視します。コマンドラインから、またはこのソフトウェアが提供するネットワーク経由で、システムの状態をチェックすることができます。

詳しくはMonitによるLinuxプロセスの監視をご覧ください。

12.NetHogs - 各プロセスが使用するネットワーク帯域幅を監視します。

NetHogsは、システム上の各プロセスのネットワークアクティビティを詳細に監視する、非常に小さなオープンソースプログラムです。また、各プログラムやアプリケーションが使用するリアルタイムのネットワーク帯域幅を追跡します。

NetHogs: Linux用帯域幅モニタリング

詳細については、 NetHogsを使用したLinuxでのネットワーク帯域幅の使用状況の監視を参照してください。

13.iftop-ネットワーク帯域幅の監視

iftop もオープンソースのシステムモニタリングアプリケーションで、 コンソール上で動作し、ネットワークインターフェイス上のシステム上の アプリケーションのネットワーク帯域幅使用量の一覧を表示し、定期的に更新されます。 iftop はネットワーク使用量の監視に使用され、「top」は CPU 使用量の監視に使用されます。top' 系列のツールの 1 つで、選択したインターフェイスを監視し、 2 つのホスト間の現在のネットワーク帯域幅の使用状況を表示するために使用されます。

iftop-ネットワーク帯域幅を監視します。

詳細については、iftop-ネットワーク帯域幅の使用状況の監視を参照してください。

14 Monitorix-システムとネットワークの監視

Monitorixは、もともとLinux/Unixサーバーシステム、リソースなどを実行し、監視するために設計された無料の軽量アプリケーションツールです。HTTPウェブサーバーを備えており、このサーバーはシステムとネットワークに関する情報を定期的に収集し、グラフィカルに表示します。HTTPウェブサーバーを持ち、このサーバーがシステムやネットワークに関する情報を定期的に収集し、グラフィカルに表示します。システムの平均負荷と使用量、メモリ割り当て、ディスクの健全性、システムサービス、ネットワークポート、メール統計、MySQL 統計などを監視します。システムの全体的なパフォーマンスを監視し、エラー、ボトルネック、異常なアクティビティを特定するために使用されます。

15.Arpwatch-イーサネット・アクティビティ・モニター

Arpwatch は Linux 上でイーサネットのアドレス解決を監視するために設計さ れています。Arpwatch は、イーサネットのアクティビティを一定期間継続的に監視し、 IP アドレスと MAC アドレスのペアリング変更のログを出力します。また、アドレスペアの変更を警告する電子メール通知を管理者に送信することもできます。これは、ネットワーク上のARP攻撃を検出するのに便利です。

詳しくは、 Suricata - ネットワーク侵入検知防御システムご覧ください。

16.スリカタ - ネットワークセキュリティ監視

Suricata は、Linux、FreeBSD および Windows 上で動作する、 オープンソースの高性能ネットワークセキュリティ、侵入検知および カウンターモニタリングツールです。非営利団体 OISF が開発し、著作権を所有しています。

詳しくは、 Suricata - ネットワーク侵入検知防御システムをご覧ください。

17.VnStat PHP - ネットワークトラフィックの監視

VnStat PHP は、人気のあるネットワークツール "vnstat" のウェブベースのフロントエンドレンダリングです。アップロードおよびダウンロードのトラフィックを時間、日、月単位で表示し、 サマリーレポートを出力します。

詳細については、 VnStat PHP - ネットワーク帯域幅の監視を参照してください。

18.Nagios-ネットワーク/サーバー監視

Nagiosは、ネットワーク/システム管理者が通常のビジネスに影響を与える前に問題を検出し、解決することができ、主要かつ強力なオープンソースの監視システムです。Nagiosを使用すると、管理者は、単一のウィンドウでLinux、Windows、スイッチ、ルータ、およびプリンタをリモート監視することができます。システム/サーバーが異常である場合、危険を警告し、指摘することができ、問題が発生した場合、間接的に救済措置を取ることができます。

詳細については、以下を参照してください: リモートLinux / Windowsホストを監視するNagios監視システムのインストール

Read next