システムにユーザーがいない場合、ハードディスクを低電力状態にスピンダウンしたいと思います。これは24時間で100%達成できるわけではないことを理解していますが、システムが使用されていないときに、システムが数時間アイドル状態のままになることは理にかなっています。
私のシステムはヘッドレスであり、限られた数のサービスを実行しています。主なサービス:exim4、mythtv-backend、nfs、samba、cups、apt-cacher-ng
ドライブがすでにスタンバイモードに移行できるようになっていると仮定します。また、私のシステムはUPS上にないため、ライトバックタイムアウトを増やすことは受け入れられません。
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秒ごと)でログがディスクに書き込まれます。
十分なRAMがある場合は、tmpfsを使用して一時ファイルシステムをメモリに移動できます。/etc/fstabを編集して以下を追加します。
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
私のラップトップでは、/ var/logをtmpfs ramドライブにマウントしました。これにより、ディスクへの書き込みははるかに少なくなりますが、当然、ログメッセージは再起動時に破棄されます。 eximのようなサービスを実行しているときに、望ましくない可能性があるもの。
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
および/etc/rc.local
mkdir /var/log/apt
noatime
でマウントします
more RAMも役立ちます(より大きなバッファとキャッシュ)