[pgsql-jp: 32320] Re: 数万アクセスに対する対処について
Mao Morimoto
yneko2 @ yamamaya.com
2004年 2月 19日 (木) 23:49:36 JST
もりもとです。
> 僕の経験では、ファイルIOが発生するのがかなりCPUに負荷がかか
> ると思い、DBへ直接書き込む方法を取ってました。
> 上記のやり方は、ある時期までファイルへ書き込み、夜間などにバッチ
> でDBへ書き込むのでしょうか。
バッチで、ではなくて、データがリアルタイムで順次追加されていくファイル(私の
システムの場合Webサーバのログファイル)を、順次マイペースでDB側が読み込ん
で処理する、という形です。具体的には・・「tail -f」コマンドの出力をパイプで
受け取ってDB側に渡しているだけです。ペースの調整はパイプのバッファがやって
くれます。(ちなみに、ログをはき出すサーバと、DBは別サーバです)
データが集中してくると最大で5分くらいDB側が遅れたことがありますが、通常は
数秒程度の遅れでついてきてます。
ファイルのロックは・・今時のカーネルなら、flockを信用しても問題ないのではな
いでしょうか。。
どうしても心配なら、メッセージキューを使うという方法もあると思います。メッ
セージキューのFIFOのサイズが小さいので、DB側の処理が追いつくまで上流側
が待たされることになりますけど、ロックの心配も皆無です。
- Mao Morimoto
Web site: http://yamamaya.com/
Blog : http://blog.yamamaya.com/
pgsql-jp メーリングリストの案内