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

Kenji Ono ono @ fjct.fujitsu.com
2004年 2月 19日 (木) 23:04:48 JST


もりもとさん、今日は。小野です。

> Webサーバのアクセスログを正規化してDBに書き込む、という
> システムで、
> PostgreSQL + Perl(DBI,DBD::Pg)の構成で、
> 生データ → マスタでコード変換 → INSERT → COMMIT という
> 一連のトランザクションを、300回/秒くらいで処理できました。
> ちなみに、データベースへのセッションは最初に1回接続したっきり、
> あとは1レコードごとにcommitという方法です。
> このシステムでの方法なのですが・・
> DBに入れたいデータはまずファイルに順次追加していき、
> それを tail -f で読み込みながら、DB側のペースにあわせて
> 書き込んでいくという方法をとってます。
> なので、ピーク時のレコード数/秒にはほとんど限界がないです。
> DBへの書き込みがあとからついてくるので、リアルタイムで
> 参照というのはできませんが。。

僕の経験では、ファイルIOが発生するのがかなりCPUに負荷がかか
ると思い、DBへ直接書き込む方法を取ってました。
上記のやり方は、ある時期までファイルへ書き込み、夜間などにバッチ
でDBへ書き込むのでしょうか。
なんとなく、ファイルへのアクセスが多重になった際、PHPのファイル
ロックが完璧に動作するのかが心配です。
Perlでは大丈夫だったのでしょうか。



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