ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない

タイトルは煽り入ってますが。

仮に動的ページを生成するのにかかる時間が1秒、そのうちデータベースやmemcached等リモートサーバへの問い合わせ時間を除くいたCPUの処理時間が0.1秒とする。また、ピークのリクエスト処理量は、平均の2倍とする。

そうすると、クアッドコアアプリケーションサーバで処理できるリクエストは、

4 core * 10 reqs/sec * 86,400 sec/day * 30 day/mon / 2 = 51,840,000 reqs/mon

と、約5,000万PV/月を1台で捌けることになる。

CPUが動いている時間は全処理時間の10倍と仮定したわけだから、アプリケーションサーバの最大同時接続数は

4 core * 10 = 40

程度あればいいことになる。実際には、安全係数を2倍かけて 80 とか。リクエストの処理に必要なメモリ量を 100MB とすると、

100 MB/conn * 80 conn = 8GB

程度のメモリがあればいいってことだから、ちゃんとメモリを積んでやれば CPU の前にメモリがサチるってことはない。

つまり、約5,000万PV/月くらいのサイトまでなら、アプリケーションサーバ1台で捌ける、という机上の計算が成り立つ。

API系のアクセスがどんどん増えていかない限り、アプリケーションサーバを複数台で構成する、ってのは、大規模なサービス以外では不要になるんだろうな、と思った。

2010/01/12追記: ↑は煽っているので、もっとマトモな説明は ウェブ業界の15年、これからの10年 (Re ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない) - kazuhoのメモ置き場