どのプロセスが常にディスクに書き込みを行っているかを知るにはどうすればよいですか?
ワークステーションを静かに近づけて、静かなファンなどを備え、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です)
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]
IO echo 1 > /proc/sys/vm/block_dump
し、/ var/log/syslogでデバッグメッセージを確認します。これには、iotop
が現在のアクティビティのみを表示するのに対して、過去のアクティビティを含むあるタイプのログファイルを取得できるという利点があります。
ディスクノイズが書き込みを引き起こしているプロセスによるものであり、 ディスクスピンダウンの問題 ではない場合、 監査サブシステム (-- 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
あなたはこれに少し手を加えることができます。ほとんどの場合、それを絞り込む必要があります。
find / -mount -newer /proc -print
/ファイルシステムの物理デバイスでの起動以降に変更されたファイルを提供します。ファイルを知ることは、おそらく作家を識別するのに役立ちます。
Raspberry Piでs.m.a.r.tが外付けUSBディスクを何度もスピンアップさせていることがわかりました。 SMARTは一般的に良いことですが、もう一度無効にすることにしました。それ以降、不要なディスクアクティビティが停止したようです。
正確なディスクに絞り込む必要がある場合は、以下を使用します。
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