[pgsql-jp: 32342] Re: 数万アクセスに対する対処について

Tsunehisa Kazawa kazawa @ ca2.so-net.ne.jp
2004年 2月 20日 (金) 22:46:07 JST


こんばんは。加澤です。

Hiro Yoshioka wrote:
> そーなる前に別のところがボトルネックになるような気が
> していますが、どーなんでしょう。

アプリケーションにもよるでしょうが、単純 insert テストならば WAL ログ書
きがボトルネックな状況に持っていくことはそんなに難しくないですよ。
pgbench (TPC-B?) だと結構難しいかな…。

> スケーラビリティという観点からPostgreSQLのソースを
> ななめに眺めてみると、仮想記憶の使いかたはどーよとか、
> SMPでのロックの粒度はどーよとか、別のところでも
> いろいろなボトルネックがありそうで、事はそー簡単じゃない
> ような気もしていますが、実際のところは、どーなんでしょう?

そうなんですよね。shared_buffers を増やし過ぎると確かに性能劣化すること
がありました。CPU 数を2から4に増やした時の性能向上率も…微妙な感じ(汗。

> RAID0+1で評価してほしい〜

WAL ログ書きだけならば対処もしやすい (それこそそこだけ RAID0+1 をおごる
とか…) んですが、PostgreSQL の場合、checkpoint が発生した時に全て (では
ないのかな…) の transaction が停止することがあるのが気になります。
checkpoint 間隔を大きく広げた状態でテストしてみると、ときどき10秒以上処
理出来ない時間が生じてしまったりしました。

Web Service のようなレスポンスタイムが重要なシステムの場合、負荷が高まる
ことを覚悟の上で checkpoint 間隔を短くして使わざるを得ないのではないかと
思うのですが、この挙動は何か回避する方法があるんでしょうか?

-- 
  ◇   加澤恒央 Tsunehisa KAZAWA
◇  ◇ mailto:kazawa @ ca2.so-net.ne.jphttp://www.digitune.org/




pgsql-jp メーリングリストの案内