さまざまなWebサイトをホストしているサーバーでは、iotop、iostat、sarなどのツールを使用してIO操作を担当するプロセスを特定できず、IOがボトルネックを引き起こすことがよくあります。
私はこれらのプロセスがメタデータに対して多くのIO(属性の読み取りおよび/または書き込み、多くの空のファイルの作成または削除など)を実行していると思います。残念ながら、これらの操作は「プロセス別」としてカウントされず、メモリマッピングファイル(mmap)を使用してIOを実行することもできません。
私の質問は:メモリマップされたファイルのメタデータとioを含むプロセスごとまたはファイルあたり(おそらくより良い)IOを監視および/または計算する(例:cgroupsやblkioを使用する)方法はありますか?
現在、systemtapを使用して「ディスクにヒットされた要求」を計算し、メインページエラーに対してhandler_mm_fault()(カーネルのmm / memory.c)を取得しようとしていますが、操作が行われたことを確認できません。ファイルシステムメタデータこの関数によって処理されるページフォルトを生成します。
あなたの洞察力に感謝します!
答え1
私がやろうとしている作業に近いsystemtapスクリプトを思い出しましたが、書き込みを追跡しません。
コードの要点は次のとおりです。https://gist.github.com/Martiusweb/10633360
答え2
私は私の意見を聞いた後、次の素晴らしいコマンドを覚えています。オートフ
iotop watches I/O usage information output by the Linux kernel (requires
2.6.20 or later) and displays a table of current I/O usage by processes or
threads on the system.
ただし、通常はインストールされていないため、サーバーが実稼働しているように見えるので、確認することをお勧めします。ここインストールできない場合。
返品ラソフプロセスで開かれたファイルを確認するための良いコマンドです。