apt-cache showでDynamic MMap ran out of roomと怒られた
% apt-cache show grep E: Dynamic MMap ran out of room E: 読み込みエラー - read (14 不正なアドレスです) zsh: exit 100 apt-cache show grep
エラーメッセージをぐぐってみたらAPT::Cache-Limitを適切なサイズにすればいいとのこと。
aptitudeで怒られたならともかく、apt-cacheで怒られたなんて…。
以前はその値を大きくしすぎてしまったため、メモリを馬鹿喰いしてハマった。
apt-get updateした直後なら馬鹿喰いしないんだけど、なにかインストールした後必ず馬鹿喰いしていた。
/etc/apt/sources.listから余計な行を削除してとりあえず10Mから徐々に増やしていこう。
*1:と、宣伝
mksquashfsにかかる時間を測定
cron jobで運用しているので、数時間くらいかかろうが構わんが、とりあえず測定してみる。
# ハードディスク内に作成 $ time nice -19 mksquashfs /home test.squashfs -noappend 786.23s user 73.60s system 53% cpu 26:34.43 total $ ls -l test.squashfs -rwx------ 1 root root 2408833024 2007-08-17 15:59 test.squashfs # 3倍速DVD-RAM内に作成 $ nice -19 mksquashfs /home /dev/dvd -noappend 1:54:46.00 # cron jobなのでtimeしていない。ログファイルの時刻より算出 # イメージをDVD-RAMに書き込む $ time sudo nice -19 dd if=test.squashfs of=/dev/dvd 4.87s user 39.56s system 0% cpu 1:48:11.74 total
2.4GBのsquashfsを作る実験。nice -19と優先度最低で測定。ハードディスク内にsquashfsを作ると30分弱。3倍速DVD-RAM内に作ると2時間弱。squashfsをDVD-RAMに書き込むのにも2時間弱とほぼ同じなので、DVD-RAMの書き込みの遅さが響いている。
nice値を普通にしてみた。
$ time sudo dd if=test.squashfs of=/dev/dvd 5.49s user 41.18s system 0% cpu 1:47:34.60 total
しかし書き込み時間に変わりはなかった。調べてみたところデフォルトのままだと割り込み大量発生のために遅くなるそうだ。
$ time sudo dd if=test.squashfs of=/dev/dvd ibs=512 obs=2048k 2408833024 bytes (2.4 GB) copied, 1343.73 seconds, 1.8 MB/s 1.90s user 10.97s system 0% cpu 22:23.80 total
うおっ!22分だなんて早すぎ!!!
$ time sudo dd if=test.squashfs of=/dev/dvd ibs=512 obs=4096k [/home] 2408833024 bytes (2.4 GB) copied, 1582.64 seconds, 1.5 MB/s 1.63s user 10.44s system 0% cpu 26:25.36 total $ time sudo dd if=test.squashfs of=/dev/dvd ibs=512 obs=1024k 2408833024 bytes (2.4 GB) copied, 1443.57 seconds, 1.7 MB/s 1.99s user 11.36s system 0% cpu 24:06.85 total
obs=4096kだと26分、obs=1024kだと24分…ということはobs=2048kがベストのようだ。まさかノロマDVD-RAMごときが1.8MB/sも出るとは思わんかった。3倍速でこれなんだから12倍速だったらおそらく7MB/sか…一昔前のハードディスクくらいじゃん!
squashfs-lzma
gzipのかわりに7zipのアルゴリズムでさらに圧縮するsquashfs-lzmaがある。すばらしげなので使いたいが、特にファイルシステムはパッケージがないと不安でしょうがない。せっかくsquashfs-lzmaで圧縮バックアップしても、squashfs-lzmaがインストールされていないと復元すらできない。自分でコンパイルしようにもエラーが出たら…と思うとぞっとする。もしインストールできたとしても、おっちょこちょいだからカーネルをアップグレードするときに再コンパイルを忘れるとかありそうだし。
誰かdebian package作ってくれないかな〜?素のsquashfsはパッケージがあるから試した。やっぱり手軽に試せるってのは大きいと思う。
reiser4も試したいけど、パッケージがないため躊躇している。