fision の試用2006年09月20日 11時48分00秒

いくつか、バグを修正し fision-20060919.tar.bz2 を公開。まだ、修正したい部分も残っている。今までは、実験用のファイルを作ってのプログラム自体のテストだけだった。今回は使い方次第では、期待通りの動作をさせることも出来るので、試用してみた。動作は安定してきたと思っているが開発版であることは変わらず、他の人の期待した通りの動作をするかは保証できない。

まずは、ディスクの容量が大きく、元々繋がっていた機械の CPU は遅いので、速い機械に繋ぎ直した。メモリは少ないのでスワップは覚悟している。


FreeBSD 6.1-RELEASE #13: Fri Aug 18 19:37:56 EST 2006
...
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) 64 Processor 2800+ (1799.49-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0xf4a  Stepping = 10
  Features=0x78bfbff
  AMD Features=0xe0500800
real memory  = 268369920 (255 MB)
avail memory = 253120512 (241 MB)
...
ad10: 238475MB  at ata5-master UDMA100

ディスクの容量が約 250GB で、以前に dump と restore をやったときに、利用可能なメモリを拡張する必要があった。今回も同じ事になるのは容易に予想できるので、/boot/loader.conf に以下のように設定する。


kern.maxdsiz="2048m"

そして、ディスクへのアクセスを軽減するために、noatime を有効にして mount する。


# mount -onoatime /dev/ad10s1c /jail
# df -i /jail
Filesystem   1K-blocks      Used    Avail Capacity iused    ifree %iused  Mounted on
/dev/ad10s1c 236511738 234907068 -5490682   102%  889785 29680709    3%   /jail

まあ、こんな感じで、ディスクはいっぱいだ。pdumpfs でバックアップを繰り返していた。時折り、ディレクトリを移動したり、ファイルを移動したりしたので、余計な複製がある。それを取り除こうと思って、プログラムを書いた。


# fision -e -v -v -v -v /jail
...
process domain(101, 18022) 1 files 111933/111936 domains
free domain(101, 18022)
process domain(101, 1026458178) 1 files 111934/111936 domains
free domain(101, 1026458178)
process domain(101, 995335659) 1 files 111935/111936 domains
free domain(101, 995335659)
2nd stage completed: combined same files
3rd stage completed: restored timestamps
50350 files
47601 dirs
38679 linked
8273.085u 852.376s 28:06:33.77 9.0%     16+-1862k 4594526+638io 2845078pf+0w

統計を取るようにしたが、ファイル、ディレクトリ共に数が明らかにおかしい。int が溢れてしまったのだろうか。また、長時間かかるので、進行状況が全然判らないのは不便だ。結構多めにデバッグの情報を出力した。後、数時間で終わりそうなのか、一日以上掛かりそうなのかで、心構えが変わる。結果は御覧の通り、丸一日かかっている。

そして、これが結果だ。


# df -i /jail
Filesystem   1K-blocks      Used    Avail Capacity iused    ifree %iused  Mounted on
/dev/ad10s1c 236511738 206339330 23077056    90%  753188 29817306    2%   /jail

約一割程のファイルが削除され、ハードリンクに変えられた。大体、予想していたぐらいの容量が空けられた。

今回、メモリの利用量は 1.5 GB まで上がった。もし、大型のパーティションに対して実行する場合は参考にして頂きたい。また、今回の試用で、大量のスワップを利用した時の改善点が見えた。

前回次回