Linuxでファイルシステムに書き込まれているものを見つける方法


1

時間の経過とともに特定のディスクに書き込むプロセスを見つけるにはどうすればよいですか?

私の特定のケースでは、24時間年中無休で実行される小さなホームサーバーを使用し、使用されていないすべてのドライブをシャットダウンするスクリプトをcrontabに含めました(15分間/ proc / diskstatsを変更しません)。

しかし、システムディスクはまったく落ちません。私はログを疑っていますが、おそらくシステムディスク上のファイルシステムに書き込むログだけではなく、ディスクがまだスピンダウンしていないことを確認するためにログファイルを別の場所に移動したくない私はそれに対して何もできません。

回答:


2

私は知らないが、私は推測しますが、これについてできることは何もないということ。私の理由は次のとおりです。

「システムディスク」と言うとき、ルートファイルシステムを保持するディスクを意味すると思います。

ルートファイルシステムには/etc/cron.*、cronによって監視および処理されるものなど、さまざまなユーティリティによって監視されるいくつかのディレクトリとファイルが保持されます。おそらく/ etcを/とは異なるファイルシステムに配置することもできますが、ほとんどの場合、それは価値があるよりも厄介であり、確かに一般的な設定ではありません。

/proc/diskstats 書き込みだけでなく、ディスク読み取りアクティビティも含まれます。

cronがスクリプトを実行してディスクアクティビティがあるかどうかをチェックするたびに、さまざまな場所(書き込みではなくても)からほぼ確実に複数の読み取りが行われます:crontab、コマンドインタープリター、これらが使用するライブラリなど。を使用するシステムではnoatime、これらの読み取りにより、問題のファイル/ノードのアクセス時間のタイムスタンプを更新する書き込みも行われます。

このため、毎回スクリプトは、/ procの/ diskstatsに応じて任意のディスクactivtiyがあったかどうかを確認するために実行し、それ自体であることは/ proc / diskstatsに応じてディスクの活動になります。したがって、「値を変更しない」という基準は満たされず、ドライブはスピンダウンしません。

これが主な懸念事項である場合、ルートファイルシステム上にある必要のないすべてのものを別のファイルシステムに移動し、ルートファイルシステムをSSDまたはフラッシュデバイスから実行することをお勧めします。のみ。これにより、明示的なアクティビティがない場合に、回転するプラッタードライブをシャットダウンできます。しかし、そうすることは、それが価値があるよりも厄介だと思います。ノイズを取り除くためにドライブをスピンダウンするだけの場合、ルートファイルシステムにあるものを小さなソリッドステートデバイス(SSDまたはフラッシュ)に移動すると、同じことをかなり少ない労力で実現できます。失敗する前に書き込みサイクルの数が制限されているという事実を考慮してください(少なくとも、noatime、またはSSDを念頭に置いて設計されたファイルシステムを使用します)。


わかりました。これは理にかなっています。ルートファイルシステムへの読み取りをまったく忘れていました。私が望んでいたものと完全に一致するわけではありませんが、他のすべてはもう少しやり過ぎだと思います。
-bardiir

4

コマンドを使用し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]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0: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]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
   11 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:1]
   12 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
   13 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cpuset]
   14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
   15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
   16 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
   17 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [sync_supers]
   18 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bdi-default]
   19 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd]
   20 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kblockd]
   21 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ata_sff]
   22 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khubd]
   23 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [md]
   24 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/1:1]
   25 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khungtaskd]
   26 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kswapd0]
   27 be/5 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksmd]

さらにiostat、出力例が次のようなコマンドを使用します。

Linux 3.2.6 (z)         10/03/2012      _i686_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.14    0.01    0.26    0.01    0.00   99.59

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.81        13.67         9.14    8968739    5996546

すでに回答済みの質問を検索する場合も、もっと頑張ってください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.