web-dev-qa-db-ja.com

定期的にディスクに書き込んでいるプロセスを見つける方法は?

どのプロセスが常にディスクに書き込みを行っているかを知るにはどうすればよいですか?

ワークステーションを静かに近づけて、静かなファンなどを備え、Debian Wheezy 64ビットをインストールした新しいシステム(P8B75-M + Core i5 3450s-最大TDPが低いため「s」)を構築するだけですその上に。

そして、何かが私の神経になっています:ハードディスクが書き込みをしている、または何かを求めているような何らかのパターンを聞くことができます(tick ... tick ... tick ... trrrrrrすすぎ、毎回繰り返す秒かそこら)。

過去に私は過去に(多くの場合、何年も前に)同様の問題を抱えていましたが、それはいくつかのCUPSログまたは何かであることがわかり、単純にその1つ(重要ではない)のログを(実際の)RAMディスク。

しかし、ここではわかりません。

私は以下を試しました:

ls -lR /var/log > /tmp/a.tmp && sleep 5 && ls -lR /var/log > /tmp/b.tmp && diff /tmp/?.tmp

しかし、何も変わっていません。

奇妙なことに、LVM復号化パスフレーズの入力を求めるプロンプトが表示されているときにもパターンが聞こえます。

インストールしたばかりのカーネル/システムにあるのでしょうか、それともハードディスクに障害がありますか?

hdparm -tT /dev/sda正しいHD速度(130 GB /秒、非キャッシュ、sata 6GB)を報告します。すでに大きなソース(Emacs)から問題なくインストールおよびコンパイルしているので、システムに問題はないと思います。

(HDはSeagate Barracude 500GBです)

44
Cedric Martin

iotop のようなプログラムが表示しているものを調べてみましたか?現在ディスクに書き込んでいるプロセスの種類を正確に伝えます。

出力例:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
 1033 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [flush-8:0]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
43
mnmnc

IO echo 1 > /proc/sys/vm/block_dumpし、/ var/log/syslogでデバッグメッセージを確認します。これには、iotopが現在のアクティビティのみを表示するのに対して、過去のアクティビティを含むあるタイプのログファイルを取得できるという利点があります。

15
scai

ディスクノイズが書き込みを引き起こしているプロセスによるものであり、 ディスクスピンダウンの問題 ではない場合、 監査サブシステム (-- auditdパッケージ )。 syncの呼び出しとその友達を監視します。

auditctl -S sync -S fsync -S fdatasync -a exit,always

/var/log/audit/audit.logのログを確認します。監査ログ自体がフラッシュされる場合は、これを行わないように注意してください。 /etc/auditd.confをチェックインして、flushオプションがnoneに設定されていることを確認します。

ファイルが頻繁にフラッシュされている場合、考えられる原因はシステムログです。たとえば、失敗した着信接続試行をログに記録し、誰かがあなたのマシンを調査している場合、それは多くのエントリを生成します。これにより、ディスクから機関銃風のノイズが発生する可能性があります。基本的なログデーモンsysklogdを使用して、/etc/syslog.confを確認します。ログファイル名の前に-がない場合、そのログは書き込みのたびにディスクにフラッシュされます。

ドライブが自動的にスピンダウンする可能性がありますが、最近では多くのコンシューマーグレードのドライブがそれを実行しています。残念ながら、負荷が軽いシステムでも、ドライブの温度を監視するためにhddtempなどを実行している場合は特に、ドライブが常にスピンダウンし、その後再びスピンアップします(ほとんどのドライブではSMARTドライブを回転させない温度値-非常に危険です!)。

多くのドライブには限られた数のパークサイクルしかないため、これは煩わしいだけでなく、ドライブの消耗を早める可能性があります。例えば問題の説明については https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/952556 を参照してください。

以下のシェルコードを使用して、すべてのドライブでアイドルスピンダウンを無効にします。 /etc/rc.bootスクリプト、または/etc/rc.localなどに配置できます。

/dev/sdのディスク用? ; do 
/sbin/hdparm -q -S 0 "$ disk" 
 done 
4
cas

あなたはこれに少し手を加えることができます。ほとんどの場合、それを絞り込む必要があります。

find / -mount -newer /proc -print

/ファイルシステムの物理デバイスでの起動以降に変更されたファイルを提供します。ファイルを知ることは、おそらく作家を識別するのに役立ちます。

2
user190618

Raspberry Piでs.m.a.r.tが外付けUSBディスクを何度もスピンアップさせていることがわかりました。 SMARTは一般的に良いことですが、もう一度無効にすることにしました。それ以降、不要なディスクアクティビティが停止したようです。

1
jro

正確なディスクに絞り込む必要がある場合は、以下を使用します。

lsblkを実行して、デバイス番号を調べます。以下の場合は9:126

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdb           8:16   0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdc           8:32   0   7.3T  0 disk  
└─sdc1        8:33   0   7.3T  0 part  /mnt/InternalFBE

実行lsof | grep '9,126' とともに : と置換する ,上記のディスク番号と比較。私の場合、これは次のように表示されます:

bash      389162            root  cwd       DIR              9,126      4096  449183796 /mnt/InternalPhase/0000000001/CHANNEL01/LIVE/PHASE/DATA/2018/10/04

pIDは389162以下を使用してこのプロセスを終了します:

kill -9 389162
1