FreeBSDシステムでIOジョブを確認する

FreeBSDシステムでIOジョブを確認する

FreeBSDでIOタスクをチェック/インターセプトする方法があるかどうか疑問に思います。 ktraceに似ていますが、プロセスがわからない場合(例:少し時間がかかります)。

ベストアンサー1

モニタリングとパフォーマンスの分析には、次のような非常に強力なセミプログラマブルツールがあります。

dtraceを使用すると、必要なシステムコールを追跡できるコマンドラインまたはアプレットプログラムを作成できます。

やや強力で複雑です。非常に興味深い本を含むいくつかの例を見つけることができます。システムパフォーマンス:エンタープライズとクラウド

~からDTraceツールページ:

動的トレースの実装であるDTraceは、さまざまなオペレーティングシステム(Solaris、Mac OS X、FreeBSD ...)で利用できます。 DTraceは、以前は困難またはアクセスできなかったレベルでアプリケーションとシステム内部の新しい詳細ビューを提供し、サーバーの問題を解決するのに役立ちます。 DTrace スクリプトを作成するための C および awk に似たイベントベースの言語を提供します。

# Files opened by process:
dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'

# Read bytes by process:
dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'

# Write bytes by process:
dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'

# Read size distribution by process:
dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'

# Write size distribution by process:
dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'

おすすめ記事