« eeeUbuntuでのCPUクロックとかライトバック等の設定 | メイン | リナザウの再来?IMOVIOのiKitが気になるかも »

UbuntuデスクトップがidleになったらWriteBackさせるメモ

EeePCなんかでLinuxのWritebackの周期を延ばしたりため込むメモリ設定をいっぱいに設定していると、使っている間は快適ですし、SSDの寿命にもいいのですが、いいことばかりではなく、不意のリブートや電源断等でデータを失う可能性も高くなりますし、使っている最中に掃き出しが始まるとぎくしゃく一瞬止まったようになったりします。そこでコンピュータがヒマな時にsyncしてはどうかと思いやってみました。使ったPCはEeePC 901でOSはUbuntu 8.04ベースのeeeUbuntuです。

準備

sudo apt-get install xautolock

単純にユーザが使っていない時にsyncする

xautolock -time <idle 分> -locker sync

pm-utils等でガバッと長い周期とメモリ保持量に設定しておき、上のコマンドを走らせておく。本来はスクリーンセーバ起動用のソフトなのですが、単純にsyncを呼び出すだけでOK。これで無操作状態が続く限りidle分ごとにsyncが走ります。

なにか処理が走っていて負荷が高いっぽい時にはsyncしないようにする

/proc/loadavgをチェックしてユーザが操作していなくて、CPUもヒマな時だけsyncするようにする。

以下のスクリプトをsync.pl等の名前で~/bin辺りに保存してchmod +xしておく。

#!/usr/bin/perl
open(FD,"</proc/loadavg") || die "can't open loadavg";
@u = split ' ',<FD>;
close FD;
if ($u[0] < 1.0 && $u[1] < 1.0 && $u[2] < 1.0) {
  system("sync");
}

これを下のようにしてxautolockを起動。

xautolock -time <idle 分> -locker "~/bin/sync.pl"

私は1〜5分程度の短い時間に設定してみました。特にメモリの少ない方やバッテリーが低いとき、ちょっとした隙に書き出しをしてくれて安全。メモリが多い方は長めにとってもいいかもしれません。

どれだけDirtyバッファがたまっているか調べるには

egrep "Dirty|Writeback" /proc/meminfo

納得のいく時間設定が出来たら[システム]->[セッション]から自動起動に追加する。

ほんとはI/O負荷もcheckしたいところだけど、今回はまあよしとすることに。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/783


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2008年10月14日 17:03に投稿されたエントリーのページです。

ひとつ前の投稿は「eeeUbuntuでのCPUクロックとかライトバック等の設定」です。

次の投稿は「リナザウの再来?IMOVIOのiKitが気になるかも」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー