28.2. bcc-tools でパフォーマンスの分析


BPF Compiler Collection (BCC) ライブラリーから事前に作成された特定のプログラムを使用して、システムパフォーマンスをイベントごとに効率的かつセキュアに分析します。BCC ライブラリーで事前作成されたプログラムセットは、追加プログラム作成の例として使用できます。

手順

execsnoop を使用してシステムプロセスを調べる
  1. 1 つのターミナルで execsnoop プログラムを実行します。
# /usr/share/bcc/tools/execsnoop
Copy to Clipboard Toggle word wrap
  1. ls コマンドの短期的なプロセスを作成するために、別のターミナルで次のように入力します。

    $ ls /usr/share/bcc/tools/doc/
    Copy to Clipboard Toggle word wrap
  2. execsnoop を実行している端末に、次のような出力が表示されます。

    PCOMM	PID    PPID   RET ARGS
    ls   	8382   8287     0 /usr/bin/ls --color=auto /usr/share/bcc/tools/doc/
    ...
    Copy to Clipboard Toggle word wrap

    execsnoop プログラムは、システムリソースを消費する新しいプロセスごとに 1 つの行を出力します。また、ls などの非常に短期間に実行されるプログラムのプロセスを検出します。なお、ほとんどの監視ツールはそれらを登録しません。

    execsnoop 出力には以下のフィールドが表示されます。

PCOMM
親プロセス名。(ls)
PID
プロセス ID。(8382)
PPID
親プロセス ID。(8287)
RET
exec() システムコールの戻り値 (0)。プログラムコードを新規プロセスに読み込みます。
ARGS
引数を使用して起動したプログラムの場所。

execsnoop の詳細、例、オプションについては、/usr/share/bcc/tools/doc/execsnoop_example.txt ファイルを参照してください。

exec() の詳細は、exec(3) man ページを参照してください。

opensnoop を使用して、コマンドにより開かれるファイルを追跡する
  1. 1 つのターミナルで opensnoop プログラムを実行し、uname コマンドのプロセスによってのみ開かれたファイルを出力します。
# /usr/share/bcc/tools/opensnoop -n uname
Copy to Clipboard Toggle word wrap
  1. 別のターミナルで、特定のファイルを開くコマンドを入力します。

    $ uname
    Copy to Clipboard Toggle word wrap
  2. opensnoop を実行している端末は、以下のような出力を表示します。

    PID    COMM 	FD ERR PATH
    8596   uname 	3  0   /etc/ld.so.cache
    8596   uname 	3  0   /lib64/libc.so.6
    8596   uname 	3  0   /usr/lib/locale/locale-archive
    ...
    Copy to Clipboard Toggle word wrap

    opensnoop プログラムは、システム全体で open() システム呼び出しを監視し、uname が開こうとしたファイルごとに出力行を出力します。

    opensnoop 出力には、以下のフィールドが表示されます。

    PID
    プロセス ID。(8596)
    COMM
    プロセス名。(uname)
    FD
    ファイルの記述子。開いたファイルを参照するために open() が返す値です。(3)
    ERR
    すべてのエラー。
    PATH
    open() で開こうとしたファイルの場所。

    コマンドが、存在しないファイルを読み込もうとすると、FD コラムは -1 を返し、ERR コラムは関連するエラーに対応する値を出力します。その結果、opensnoop は、適切に動作しないアプリケーションの特定に役立ちます。

opensnoop の詳細、例、オプションについては、/usr/share/bcc/tools/doc/opensnoop_example.txt ファイルを参照してください。

open() の詳細は、open(2) man ページを参照してください。

biotop を使用して、ディスク上で I/O 操作を実行している上位のプロセスを監視する
  1. 1 つのターミナルで biotop プログラムを引数 30 を指定して実行し、30 秒間のサマリーを生成します。
# /usr/share/bcc/tools/biotop 30
Copy to Clipboard Toggle word wrap
注記

引数を指定しないと、デフォルトでは 1 秒ごとに出力画面が更新されます。

  1. 別のターミナルで、次のコマンドを入力して、ローカルハードディスクデバイスからコンテンツを読み取り、出力を /dev/zero ファイルに書き込みます。

    # dd if=/dev/vda of=/dev/zero
    Copy to Clipboard Toggle word wrap

    この手順では、biotop を示す特定の I/O トラフィックを生成します。

  2. biotop を実行している端末は、以下のような出力を表示します。

    PID    COMM             D MAJ MIN DISK       I/O  Kbytes     AVGms
    9568   dd               R 252 0   vda      16294 14440636.0  3.69
    48     kswapd0          W 252 0   vda       1763 120696.0    1.65
    7571   gnome-shell      R 252 0   vda        834 83612.0     0.33
    1891   gnome-shell      R 252 0   vda       1379 19792.0     0.15
    7515   Xorg             R 252 0   vda        280  9940.0     0.28
    7579   llvmpipe-1       R 252 0   vda        228  6928.0     0.19
    9515   gnome-control-c  R 252 0   vda         62  6444.0     0.43
    8112   gnome-terminal-  R 252 0   vda         67  2572.0     1.54
    7807   gnome-software   R 252 0   vda         31  2336.0     0.73
    9578   awk              R 252 0   vda         17  2228.0     0.66
    7578   llvmpipe-0       R 252 0   vda        156  2204.0     0.07
    9581   pgrep            R 252 0   vda         58  1748.0     0.42
    7531   InputThread      R 252 0   vda         30  1200.0     0.48
    7504   gdbus            R 252 0   vda          3  1164.0     0.30
    1983   llvmpipe-1       R 252 0   vda         39   724.0     0.08
    1982   llvmpipe-0       R 252 0   vda         36   652.0     0.06
    ...
    Copy to Clipboard Toggle word wrap

    biotop 出力には、以下のフィールドが表示されます。

PID
プロセス ID。(9568)
COMM
プロセス名。(dd)
DISK
読み取り操作を実行するディスク。(vda)
I/O
実行された読み取り操作の数。(16294)
Kbytes
読み取り操作によって読み取られたキロバイト数。(14,440,636)
AVGms
読み取り操作の平均 I/O 時間。(3.69)

biotop の詳細、例、およびオプションについては、/usr/share/bcc/tools/doc/biotop_example.txt ファイルを参照してください。

dd の詳細は、dd(1) man ページを参照してください。

xfsslower を使用して、予想以上に遅いファイルシステム操作を明らかにする

xfsslower は、XFS ファイルシステムによる読み取り操作、書き込み操作、開く操作、または同期操作 (fsync) の実行に費やされた時間を測定します。1 引数を指定すると、1 ms よりも遅い操作のみが表示されます。

  1. 1 つのターミナルで xfsslower プログラムを実行します。

    # /usr/share/bcc/tools/xfsslower 1
    Copy to Clipboard Toggle word wrap
    注記

    引数を指定しないと、xfsslower はデフォルトで 10 ms よりも低速な操作を表示します。

  2. 別のターミナルで、vim エディターでテキストファイルを作成するコマンドを入力して、XFS ファイルシステムとのやり取りを開始します。

    $ vim text
    Copy to Clipboard Toggle word wrap
  3. 前の手順でファイルを保存すると、xfsslower を実行しているターミナルに次のような内容が表示されます。

    TIME     COMM           PID    T BYTES   OFF_KB   LAT(ms) FILENAME
    13:07:14 b'bash'        4754   R 256     0           7.11 b'vim'
    13:07:14 b'vim'         4754   R 832     0           4.03 b'libgpm.so.2.1.0'
    13:07:14 b'vim'         4754   R 32      20          1.04 b'libgpm.so.2.1.0'
    13:07:14 b'vim'         4754   R 1982    0           2.30 b'vimrc'
    13:07:14 b'vim'         4754   R 1393    0           2.52 b'getscriptPlugin.vim'
    13:07:45 b'vim'         4754   S 0       0           6.71 b'text'
    13:07:45 b'pool'        2588   R 16      0           5.58 b'text'
    ...
    Copy to Clipboard Toggle word wrap

    各行は、特定のしきい値よりも時間がかかったファイルシステム内の操作を表しています。xfsslower は、操作に想定以上に時間がかかるなど、ファイルシステムで発生し得る問題を検出します。

    xfsslower 出力には、以下のフィールドが表示されます。

    COMM
    プロセス名。(b’bash')
    T

    操作の種類。(R)

    • Read
    • Write
    • Sync
    OFF_KB
    ファイルオフセット (KB)。(0)
    FILENAME
    読み取り、書き込み、または同期されるファイル。

xfsslower の詳細、例、およびオプションについては、/usr/share/bcc/tools/doc/xfsslower_example.txt ファイルを参照してください。

fsync の詳細は、fsync(2) man ページを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る