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

Kenji Ono ono @ fjct.fujitsu.com
2004年 2月 19日 (木) 22:46:41 JST


永安さん、今日は。小野です。

マシンスペックが、CPU:SPARC64 V1個、Mem:2G、でWEB+
DBが同居する形のマシン上で以下のテストをしてみました。
・あるテーブルの1行を更新するクエリを投げるPHPを作成
・そのプログラムを起動するPHPをbodyのonLoadで実行するように
 し、300フレーム分割する
・これを2台のPCで同時に呼び出す事で600アクセスを擬似的に
 起こす
TOPコマンドで確認したところ、CPUは100%、メモリは2G中1Gくらい
使ってました。
DBに対するアクセスは15回/1秒くらいになってました。

あまり詳しくないので初歩的な話しですが、PG_QUERYを呼び出すと
Fork&Exceが発生するのですか。
それともPG_CONNECTION毎でしょうか。

CPUは2枚でもいけそうなのかな。
4枚さしてMem2Gだと400万くらいしそう・・・。

> Subject : [pgsql-jp: 32307] Re: 数万アクセスに対する対処について
> From : Satoshi Nagayasu <snaga @ snaga.org>
> Date : Thu, 19 Feb 2004 21:34:28 +0900
> 
> 永安です。
> 
> みなさんのコメントも既にいろいろと出ていますが、
> 更新系と参照系の比率なども気になるところですね。
> 
> 検証してみないと分かりませんが、
> Web系のシステムで、もっともコストになるのは、
> DBへの接続時の fork & exec の部分ではないかと思ったりもします。
> 10万/1Hを秒でならすと、27/1秒ですから、
> 1秒間に27回 fork & exec が実行されると考えると、
> 結構辛いんじゃないかと思ったりもします。
> その点では、connection pooling が威力を発揮すると思います。
> 
> CPUのスペックについては、PostgreSQLでvmstatを見ると分かりますが、
> あまりCPUを使っているとは言えないケースも多いので、
> 無闇にアップグレードする必要はないかもしれません。
> 
> あとは、集約系のクエリをどれだけ減らすかなど、
> アプリケーションの作り込み方も大きく影響すると思います。
> 
> # DBサーバのOSがSolarisのようですので、難しいかもしれませんが、
> # 個人的にはPostgreSQL Plusあたりも検討する価値があるのではないかと。:)
> 
> > Date: Thu, 19 Feb 2004 15:57:28 +0900
> > From: Kenji Ono <ono @ fjct.fujitsu.com>
> > Subject: [pgsql-jp: 32293] 数万アクセスに対する対処について
> > Reply-To: pgsql-jp @ ml.postgresql.jp
> > 
> > 
> > 今日は、小野といいます。
> > 
> > 現在、以下の環境でアンケートシステムを構築しています。
> > ●マシン:fujitsu PRIMEPOWER 250
> > ●CPU : SPARC64V 1.1GHz/1MBキャッシュ
> > ●Mem : 1GBメモリ
> > ●HDD : 36.4GBディスク
> > ●OS  : Solaris8
> > ●DB  : PostgreSQL7.3.2
> > ●WEB : Apache2.0.47+PHP4.3.3
> > 
> > お客様よりWEBサイトを全国展開することになり、現在のピーク時に
> > は、1万/1Hとなっている事から、今後のピーク時には、10万/1Hを見込
> > んでます。
> > そうなると、大雑把には同時アクセスが100以上重なると思われます。
> > 
> > そこで、バランサ1台+WEBサーバ5台+DBサーバ1台の構成で
> > いこうと思っているのですが、DBが耐えられるか心配です。
> > 
> > 皆さんの中でこれぐらいのアクセス配下にDBをおいたサイトを構築
> > された方はいらっしゃいますでしょうか。
> > もしいらっしゃいましたら、同時アクセスでここまでいけたよー、と
> > システム構成などを教えていただければ幸いです。



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