web-dev-qa-db-ja.com

ドライブがスタンバイモードになるようにルートパーティションのディスクアクセスを制限するにはどうすればよいですか?

システムにユーザーがいない場合、ハードディスクを低電力状態にスピンダウンしたいと思います。これは24時間で100%達成できるわけではないことを理解していますが、システムが使用されていないときに、システムが数時間アイドル状態のままになることは理にかなっています。

私のシステムはヘッドレスであり、限られた数のサービスを実行しています。主なサービス:exim4、mythtv-backend、nfs、samba、cups、apt-cacher-ng

ドライブがすでにスタンバイモードに移行できるようになっていると仮定します。また、私のシステムはUPS上にないため、ライトバックタイムアウトを増やすことは受け入れられません。

6
cmcginty

hdparm ドライブのスピンダウン時間(ディスクがスタンバイモードになるまでの非アクティブ期間)を設定できますスタンバイ状態にするか、スリープ状態にします。

# set spindown time for sda drive to 1 min
Sudo hdparm -S 12 /dev/sda 
# set sdb drive to standby mode
Sudo hdparm -y /dev/sdb
# put sdc drive to sleep
Sudo hdparm -Y /dev/sdc
# check drive state (active/standby/sleeping)
Sudo hdpam -C /dev/sdc

/ etc/hdparm.confには、起動時に自動的に実行されるhdparmコマンドが含まれています。これが私のスニペットです。

/dev/sda {
  # apm 127: Highest performance that allows spindown
  apm = 127
  # spindown 120 = 10 min 
  spindown_time = 120
}

すべてのコマンドがすべてのハードドライブモデルで機能するわけではないため、実験する必要があります。

ラップトップモード非ラップトップでも動作します。ディスクを可能な限りスリープ状態にすることを意図しています。

PowerTOPは、不要なバックグラウンドアクティビティを追跡するためのユーティリティです。

lesswatts.orgには、ハードドライブのスピンダウンに関するいくつかのヒントがあります。

ライトバックタイムアウト:私の知る限り、a)ライトバックタイムアウトを増やしてプライマリディスクをアイドル状態にすることはできません。 b)syslog同期を無効にします。

回避策としては、SSDをルートディスクとして使用することが考えられます。とにかく、SSDの電力はかなり低いためです。

トラッキングアクティビティlaptop-mode FAQ -5 Spinupを参照して、ディスクアクセスの発生元をデバッグすることができます。デバッグ。

見積もり:

私のディスクは常にスピンアップしますが、何が原因なのかわかりません。これをデバッグできますか?

はい、できます。ただし、前のセクションの最後の質問で説明されているように、まず、syslog.confを同期しないように変更したことを確認してください。ディスクアクティビティをデバッグするには、次のようにします。

エコー1>/proc/sys/vm/block_dump

(警告:あなたを行う前にsyslogdを無効にする必要があります、またはカーネル出力がログに記録されていないことを確認する必要があります。これを忘れると、システムはsyslogdがディスクアクティビティを引き起こし、これがカーネル出力を引き起こし、これによりsyslogdがより多くのディスクアクティビティを行うなど、フィードバックループに入ります!)

これにより、カーネルでのファイル/ディスクアクティビティのデバッグが可能になります。 dmesgを使用して出力を読むことができます。完了したら、次を使用してブロックダンプを無効にします

エコー0>/proc/sys/vm/block_dump

syslogd syncの無効化:laptop-mode FAQ and lesswatts.orgは/etc/syslog.confを参照します。

最近のUbuntuでは、このファイルは存在せず、代わりに/etc/rsyslog.d/*.confを探します。

構文は同じです-すべてのログファイルに次のようにダッシュを追加します。

kern.*              -/var/log/kern.log

これにより、syslogデーモンの同期がオフになります。つまり、新しいログエントリがあるたびにではなく、dirty_writeback_centisecs間隔(デフォルトでは5秒ごと)でログがディスクに書き込まれます。

6
j-g-faustus

十分なRAMがある場合は、tmpfsを使用して一時ファイルシステムをメモリに移動できます。/etc/fstabを編集して以下を追加します。

tmpfs       /tmp        tmpfs   defaults    0   0
tmpfs       /var/run        tmpfs   defaults    0   0
tmpfs       /var/lock       tmpfs   defaults    0   0
3
João Pinto

私のラップトップでは、/ var/logをtmpfs ramドライブにマウントしました。これにより、ディスクへの書き込みははるかに少なくなりますが、当然、ログメッセージは再起動時に破棄されます。 eximのようなサービスを実行しているときに、望ましくない可能性があるもの。

tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0

および/etc/rc.local

mkdir /var/log/apt

0
towolf

noatimeでマウントします

more RAMも役立ちます(より大きなバッファとキャッシュ)

0
jet