GNU/Linux >> Linux の 問題 >  >> Linux

ドライブを回転させているものをどのように確認できますか?

Linux では、最近っぽい fanotify syscall は fatrace という便利なユーティリティを有効にしました これは、システム全体または特定のパーティションのどのプロセスがどのファイルにアクセスしているかを通知します。この種のツールには間違いなく私のお気に入りのツールです:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

http://samwel.tk/laptop_mode/ を確認できます。このページは主にあなたの問題に関するものではありませんが、IO がどのように機能するかの全体像とアイデアを提供し、ディスクを停止してディスクをサイレントにする方法を提供します。

あなたの問題に対する簡単な答え:

echo 1 > /proc/sys/vm/block_dump

syslog に次のようなメッセージが生成されます:

Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 4335136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 15505568 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340160 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340168 on dm-4

単純な ls コマンドを使用しました

注:実行する前に、システム ログが停止されているか、RAM ディスク (タイプ:tmpfs) に書き込まれていることを確認してください。これにより、syslogd がより多くのディスク アクティビティを行うようになります"

/tmp を ramdisk としてマウントしてから、/tmp/syslog へのロギングを設定することをお勧めします。 /etc/fstab (および再起動) でこれを行います:

none /tmp tmpfs defaults,size=256M 0 0

ドライブを使用しているものを把握するために iotop を使用しています。 Web サイトから、「TASK_DELAY_ACCT および TASK_IO_ACCOUNTING オプションを有効にした Linux カーネル ≥ 2.6.20」が必要です。

1 つの特定のドライブにのみ関心があるようです。そのドライブ/パーティションへのアクセスを lsof または fuser で定期的にチェックするスクリプトを作成することを検討してください。


Linux
  1. 自分が画面にいるかどうかを確認するにはどうすればよいですか?

  2. メイン関数が返したものを取得するにはどうすればよいですか?

  3. /tmp のディスク容量を確認するにはどうすればよいですか?

  1. 私のハードドライブは仮想的にどれくらいの Load_cycle_count を維持できますか?

  2. Linux カーネルはいくつのコアを処理できますか?

  3. Linux カーネルからメモリのブロックを予約するにはどうすればよいですか?

  1. 実行しているユーザー制限を確認するにはどうすればよいですか?

  2. プロセスが開いているファイルを確認するにはどうすればよいですか?

  3. kswapd が使用されている原因となっているプロセスを特定するにはどうすればよいですか?