oprofileを使用して、サーバー クラスターのパフォーマンスの問題を追跡しようとしています。ただし、問題のサーバーには読み取り専用のファイル システムがあり、書き込み可能なディレクトリは /var/tmp だけです。
OProfile は、実行するたびに と の 2 つのディレクトリを作成しようとし/root/.oprofileます/var/lib/oprofileが、ファイルシステムが読み取り専用であるため作成できません。コマンド ライン オプションを使用して、--session-dir以外の場所にログを書き込むこと/var/libができますが、 以外のディレクトリを使用するようにするオプションが見つかりません/root/.oprofile。
ファイルシステムは書き込み不可のメディア上にあるため読み取り専用であり、アクセス許可のためではありません。つまり、スーパーユーザーでさえそれらのディレクトリに書き込むことはできません。ファイルシステムの新しい ROM イメージをクックすることはできますが (これは明らかに oprofile をインストールした方法です)、スーパーユーザーであるかどうかにかかわらず、実行時プログラムが /root に書き込む方法はありません。
ROM に /root/.oprofile -> /var/tmp/oprofile を指すシンボリック リンクを作成しようとしましたが、どうやら oprofile はこのシンボリック リンクをディレクトリとして認識せず、実行時に失敗します。
redacted@redacted:~$ sudo opcontrol --no-vmlinux --start --session-dir=/var/tmp/oprofile/foo
mkdir: cannot create directory `/root/.oprofile': File exists
Couldn't mkdir -p /root/.oprofile
この特定のシステムでプロファイラーを実行する必要があります。調査しようとしているパフォーマンスの問題は、開発サーバーでアプリをビルドして実行すると明らかにならないからです。プログラマーのワークステーションでテストを実行し、そこでアプリをプロファイリングすることはできません。問題は発生しないからです。
oprofile を使用しないように設定する方法はあります/rootか?