PostgreSQL performance on FreeBSD2008年01月14日 10時34分31秒

同一ハードウェア上で FreeBSD と Linux を動かし、PostgreSQL を走らせている。PostgreSQL を同じように、設定しているにもかかわらず、FreeBSD の方が遅いとの事で、始まったスレッドだ。

最終的な結果は、FreeBSD の方が全体的に性能が上だったらしい。 以下に表の一部を引用する。スレッドの数が違う項目は省いた。


#threads	transactions/sec
1		755
40		6580
100		6768

compared to Linux:

Linux (2.6.18)
#threads        #transactions/sec
1               693
40              5661
100             5319

Linux (2.6.23)
#threads        #transactions/sec
1               740
40              6623
100             6417

問題は二つあったそうだ。

一つめは、テストに使っていた sysbench が Linux 上では、unix domain socket を使い、FreeBSD が TCP を使う設定になっていたらしい。もちろん、TCP の方が、性能が劣る。

二つ目は、PostgreSQL のスレッドのサポートが有効にされていなかったからだそうだ。マルチコア機でスレッドのサポートが無いと、コネクションの数が増えるに従ってコア数に応じた性能が出なくなる。

詳しい説明は、元のメールを見て欲しい。