er_kernel ユーティリティーでは、カーネルおよびアプリケーションのプロファイリングを実行できます。–F オプションを使用すると、アプリケーションのプロセスを追跡し、そのデータを記録するかどうかを制御できます。
–F on または –F all オプションを使用すると、er_kernel は、カーネルのほかに、すべてのアプリケーションプロセスに関する実験を記録します。er_kernel 実験の収集中に検出されたユーザープロセスが追跡され、追跡されたプロセスごとにサブ実験が作成されます。
root ユーザー以外で er_kernel を実行した場合、非特権ユーザーは通常ほかのユーザーのプロセスについて何も読み取ることができないため、多くのサブ実験は記録されない可能性があります。
十分な権限がある場合、ユーザープロセスのデータはプロセスがユーザーモードのときだけ記録され、ユーザー呼び出しスタックだけが記録されます。追跡された各プロセスのサブ実験には、kucycles メトリックのデータが含まれています。サブ実験には、_process-name_PID_process-pid.1.er の形式を使用して名前が付けられます。たとえば、sshd プロセスに関して実行された実験には、_sshd_PID_1264.1.er という名前が付けられることがあります。
一部のユーザープロセスだけを追跡するには、–F =regexp を使用して正規表現を指定し、正規表現に一致する名前または PID を持つプロセスに関する実験を記録できます。
たとえば、er_kernel -F =synprog では、synprog というプログラムのプロセスが追跡されます。
/proc ファイルシステムから er_kernel によって読み取られるプロセス名は、OS によって最大 15 文字まで (および 0 バイト) に切り捨てられます。そのように切り捨てられたプロセス名に一致するようにパターンを指定するべきです。
正規表現については、regexp(5) のマニュアルページを参照してください。
デフォルトでは、-F off オプションが設定されるため、er_kernel はユーザープロセスのプロファイリングを実行しません。