
ディスクに継続的に書き込みを行っているプロセスを特定する必要があります。
prstat -t
実行中のプロセスのリストを取得するために実行しようとしましたが、どのプロセスであるかを識別/見つけることができません。
を実行するとdf -k
、ディスクの特定のパスのスペースが継続的に減少していることがわかります。
ディスクに書き込む可能性のあるすべてのプロセスを終了し (すべての外部接続を閉じ) た後でも、まだディスクに書き込むものがあります。
OS Solaris 10
答え1
実際のIO操作は表示されませんが、ユーティリティfuser
実際の IO を引き起こさないプロセスや、特定のプロセスに遡ることができない方法で IO を行うプロセスも含め、ファイルシステムを何らかの方法で使用しているプロセスを識別するには (mmap()
ファイルの数は 1 で、ファイルはmmap()
複数のプロセスによって実行される可能性があります)、次のようにします。
概要
/usr/sbin/fuser [-c | -d | -f] [-nu] [-k | -s sig] files [ [- ] [-c | -d | -f] [-nu] [-k | -s sig] files] ...
説明
fuser ユーティリティは、引数として指定されたファイルを使用しているプロセスのプロセス ID を表示します。
各プロセスIDの後に文字コードが続きます。これらの文字コードは次のように解釈されます。プロセスがファイルを
c は、プロセスがファイルを現在のディレクトリとして使用していることを示します。
m プロセスが mmap(2) でマップされたファイルを使用していることを示します。詳細については mmap(2) を参照してください。
n プロセスがファイルに対して非ブロッキングの強制ロックを保持していることを示します。
o プロセスがファイルをオープンファイルとして使用していることを示します。
r は、プロセスがファイルをルート ディレクトリとして使用していることを示します。
t プロセスがファイルをテキスト ファイルとして使用していることを示します。
y は、プロセスがファイルを制御端末として使用していることを示します。
例:
ホーム ディレクトリが にマウントされた別のファイル システム上にあると仮定すると/export/home
、IO を実行していないがそのファイル システムに現在の作業ディレクトリを持つプロセスや、そのファイル システムからメモリ マップされたファイルを持つプロセスなど、そのファイル システム上でファイルを何らかの方法で使用しているすべてのプロセスが表示されます。
fuser -c /export/home