* イントロ
OOoのビルドには大変リソースを必要としますが、
FreeBSDに関して、
私はメンテナンスにはPentium4 2.4GHzという四年ほど前に購入したマシンを
用いていて、大抵一回のビルドに10時間ほどかけてました。
[ここ半年ほどはエラーが起こりにくくなっています。これは
Pavel Janikのto-be-SRC680_mXXXという
issueたちで未然に防いでいるからです。この恩恵はFreeBSDにも
MacOSXにもあるものです。それでも完全ではありませんが、
それでも、FreeBSDのissueがあるとタイムロスが大き過ぎ、人への
負担が非常に大きくなります。]
さらに、リリース間際の忙しいときにはほぼ全ての時間がそれに
費されてしまいます。
Pavel Janikは
http://blog.janik.cz/archives/2007/09/02/T09_56_29/
のブログで、Two quad-core Xeons 5310/1.6GHz, 4GB RAMを
紹介し、最短24分34秒を記録しています。

そこまでゆかなくとも、安価でなるべく高速化したい、
というモチベーションでOOoのビルドにかかる時間を短縮することに
挑戦してみました。

* マシン購入
秋葉原のTZONEの店員さんと
お話しながら、「安価」「安定性」「高速性」のバランスの取れた
マシンが欲しい、組み立ても代行してほしい、ということとしました。
予算は12万程度としました。
** Core2 Quad Q6600 2.4GHz, G0 stepping
** GA-P35-DS4 rev.2
(それでもoverclockしているのはご愛嬌)

* 結果

結果は
http://porting.openoffice.org/freebsd/benchmark.html
にまとまっていますが、以下抜粋です。

(without ccache)
-------------------------------
OS: 6.3-PRERELEASE(20071026)
CPU: Core2 Quad Q6600 @3GHz
OOo:2.3.0
Time(real):1h26m28.04s
Time(user): 3h15m33.47s
Time(sys):31m32.93s
NUMOFPROCESSES=4
-------------------------------
OS: 6.2-STABLE(20070909)
CPU: Pentium 4 2.4GHz
OOo: 2.3.0
Time(real):10h2m9.58s
Time(user):8h24m58.39s
Time(sys):1h2m4.14s
NUMOFPROCESSES=1
-------------------------------

(with ccache)
-------------------------------
OS: 6.3-PRERELEASE(20071026)
CPU: Core2 Quad Q6600 @3GHz
OOo:2.3.0
Time(real):1h12.84s
Time(user):1h13m24.19s
Time(sys):24m25.12s
NUMOFPROCESSES=4
-------------------------------
OS: 6.2-STABLE(20070909)
CPU: Pentium 4 2.4GHz
OOo: 2.3.0
Time(real):4h17m47.34s
Time(user):3h2m7.24s
Time(sys):45m56.38s
NUMOFPROCESSES=1
-------------------------------

* 議論

** 4coreの効果
4coreの効果はかなり高いです。
[メールアドレス保護]
4h38m12.18s (1core)
1h40m43.51s (4core)
となり、
2.78倍高速化となりました。

** ccacheの効果
今までのtypicalな結果としてccacheを使うと二度めのビルドから
だいたい半分弱の時間ですむようになっていました。

今回は、
1h40m43.51s->1h4m6.88sと、40%程度の短縮になりました。
短縮の内訳は、I/Oは8分の短縮、CPUのスピードは28分短縮でした。

userの使った時間は、
本来 1core total: 4h38m12.18s, 4core user 4h2m39.23s
で、ほぼ同じ値となるはずですが、
no ccache: Time(user) 4h2m39.23s
ccache   : Time(user) 1h31m22.56s 
となり、コア数に比例した値にならず、性能が出ていません。
I/O性能がほぼ飽和していると考えられます。

** overclockによるパフォーマンス向上
(明らかに間違った使い方ですが)
Core2 Quad Q6600 2.4GHz/ G0steppingはオーバークロックに向いた石とされていて、
個体によっては、4GHzでも動くようです。3GHzではほぼ間違いなく使えるようで、
それも行ってみました。
overclockによる差は、ほぼクロック比となってます。2.4GHz->3GHzでは
劇的な差はありませんでした。16%ほど高速化します。FSB1333(=333x9)
としています。
@3GHz:   1h26m28.04s
@2.4GHz: 1h40m43.51s

* 結論とさらなる高速化
高速ビルド環境をなるべく安価に構築する方法を提示しました。
従来のPentium4 の10h2m9.58sからCore2Quadで、1h26m28.04sまで
約7倍の高速化をはたしました。

メニーコアCPUはよいパフォーマンスをみせ、Core2 Quadの
4CPUのパラレルビルドの有効性を実証し、
単一コアビルドに比して2.78倍高速化されました。

さらなる高速化にはおそらくI/O、メモリ性能の向上が必要であると考えます。
I/O性能としてHDDのSATA IIの
AHCIについては詳しくまだ調べていません。少しテストした段階でほぼ効果は
ありませんでした。特に効果がありそうなのはNCQですが、work dirの
extract/removeにはあまり効果が無かったので、劇的なパフォーマンス
向上は見込めないと考えています。

Pavel Janikのブログにある
build -Px -- -Py は試しましたが有意な差を見ることはできてません。

* References
http://blog.janik.cz/archives/2007/09/02/T09_56_29/

では。
-- Nakata Maho 
([メールアドレス保護])

---------------------------------------------------------------------
To unsubscribe, e-mail: 
[メールアドレス保護]
For additional commands, e-mail: 
[メールアドレス保護]

メールによる返信