[hackers-jp: 210] Re: [Fwd: Re: [HACKERS] [PATCHES] O_DIRECT for WAL writes]
Hiroki Kataoka
kataoka @ interwiz.jp
2005年 8月 9日 (火) 22:19:52 JST
片岡です。
ITAGAKI Takahiro wrote:
> fsync を上回る性能が出たでしょうか? もしそうなら意外です。
> Gather Write は、open_sync 時のまずい動作を、
> fsync 相当に修正するだけというつもりでした。
「大きく」というのはちょっと大げさだったかもしれません。ですが、スルー
プットは確実に向上しています。まとめ書きによって多少なりとも効率がよくな
るのでしょうか。下記はちょっと現実離れしたテストですが、参考までに。
1レコード64バイト 10万件のINSERT:
fsync 25.6s ↓ ↓
open_sync 23.4s +9.5% ↓
open_sync+gw 22.1s +15.6% +5.6%
1レコード1Kバイト 10万件のUPDATE:
fsync 30.5s ↓ ↓
open_sync 28.2s +8.1% ↓
open_sync+gw 26.3s +15.9% +7.2%
ただ、板垣さんの想定と違うと思われるところは、こちらのテスト環境のHDD
がライトバックになっている点です。なので、素のままのopen_syncでもfsyncよ
り速かったりします(Gather Writeをつけるとさらに速くなる)。
>> あとは、open_sync(open_datasync)指定時のO_DIRECTを簡単に無効にできれ
>>ば完璧なんですが…今はソースを書き換えないとならないので。
> やっぱり分けたほうが良かったでしょうか?
> OSのバグだからといって、知らん振りはできませんし……。
分けてあるに越したことはないですが、そういう場合にはfsyncで我慢する、
という結論もありかもしれません。それよりも、そういう壊れた環境に
PostgreSQLをインストールした結果、自動的に選択された設定がopen_*syncだっ
たりしたらちょっと厳しいかもしれません。そういう環境は今のところ存在しな
いかもしれませんが。
> 2.4+ext3+O_DIRECT の件は、まさにこの事象だと思いますので、
> 本家にもご報告されてはいかがでしょうか?
報告しても良いですが、やり方を間違えるとTomのO_DIRECT不要説の後押しを
してしまう可能性があるので、どうしたものか…。
--
Hiroki Kataoka <kataoka @ interwiz.jp>
hackers-jp メーリングリストの案内