Linuxのより強いlaptop_mode


6

Linuxのラップトップモードを強化することはできますか?

何かがキャッシュにないものを読みたいと思っても、私はハードドライブをスピンダウンして、スピンアップしないようにしたいのです。一般に、私はこれらのモードを持ちたいです:

  1. 普通
  2. 現在のノートパソコンのモード
  3. より強いラップトップモード:キャッシュされていないものを読む(そしてそれをキャッシュする)必要があるときだけスピンアップします。本当にメモリを圧迫しているのでなければ、何かを書くスピンアップはありません(例外:コンソールの明示的な "sync"コマンド)。そのため、カーネルはプロセスを10秒間D-sleepに保つことができます。
  4. 強制ラップトップモード:ピリオドアップしないでください。このモードをオフにしない限り、問題のあるプロセスをD-sleepのままにします。ハードドライブの代わりに爆弾があるように。

また、アクセス時間を追跡したい(mount -o atime)が、更新するためだけにハードドライブを回転させたくない。

これに近づくことができるいくつかの設定またはカーネルパッチはありますか?

私は "強制ラップトップモード"のための特別なIOスケジューラを書くべきでしょうか?例えば。 echo suspend > /sys/block/sda/queue/scheduler ドライブをロックして echo cfq > /sys/block/sda/queue/scheduler もう一度それを解除するには?


それはstackoverflowに移行されるべきですか?それともちょうど閉じましたか? (私が話したモードの1つを実装しました)。
Vi.

回答:


1

ioスケジューラとして「強制ラップトップモード」をすばやくコーディングしました。最初にUMLでテストしてから、再起動せずに私のラップトップでテストしました。

http://vi-server.org/vi/0001-block-Introduce-hung-iosched.patch

発行したとき echo hung > /sys/block/sda/queue/scheduler、 に続く hdparm -y /dev/sda ハードドライブは停止し、再開しません。

読む必要があるときは」 echo cfq > /sys/block/sda/queue/scheduler

また、どのプロセスがスピンアップを起こしたいのかを確認できます(それらはDスリープです)。 reiserfsとpdflushがハングアップします。それからsyslogd。

同期の試行を防ぐため、一時的に同期を無効にします echo 0 > /proc/sys/fs/sync-enable。ハードドライブがすでにロックされている場合、多かれ少なかれ安全であるはずです。これはによって提供されます http://vi-server.org/vi/0001-fs-Introduce-sync-enable-flag.patch


しかし今、私は一時的にfsync / fdatasyncとすべてのことを無効にする必要があります...
Vi.

1
現時点では、SO地域の奥深くにいるようです。
Journeyman Geek

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