ColdFusion-開発効率を求められる今だから知りたい高性能Webアプリケーションサーバーという連載を始めました。ここに書いてあることよりまともな批評や紹介をしているつもりなので、是非参考にしてください。
ある程度のアクセスがあるサイトでは、はてなに代表されるようなPerlやRuby on Railsなどが熱いのですが、Adobe(旧Macromedia)が出しているColdFusionと言う言語があります。当方が関わっているサイトで月間約5300万PVあるサイトがあるのですが、そこではColdFusionを使っています。
最近はてなのnaoyaさんがInside Hatena Bookmark’s Backendという記事で、はてなブックマークのサーバー構成などを公開されていたのですが、そこには月間4500万PVとありました。同じぐらいの規模を持つサイトとして、PerlとColdFusionを比べてみよう、と言う記事です。
まずはサーバー構成から。
| はてな | 弊社 | |
|---|---|---|
| フロントエンド(リバースプロキシ) | 1台 | 1台 |
| DBマスター | 1台 | 1台 |
| DBスレーブ | 5台 | 2台 ※アプリケーションサーバーと同居 |
| アプリケーションサーバー | 10台 | 2台 ※DBスレーブと同居 |
| 画像配信サーバー | - | 1台 |
| 合計 | 17台 | 5台 |
比較したときの大きな違いはアプリケーションサーバーの台数でしょう。はてなはDBとアプリケーションサーバーを分けた状態でアプリケーションサーバーが10台もあるわけですが、弊社は2台で処理をしています。また弊社の場合、アプリケーションサーバーにDB(MySQL)が同居しています。それでいて、レスポンスタイムははてなブックマークと同程度です。
ということは単純に考えれば、Apache+ColdFusion MX 7はApache+mod_perlの5倍程度の性能を持っているものと考えられます。もちろんサーバー性能自体がかなり違うと言うこともあり得ますので、弊社のDB兼アプリケーションサーバーのスペックを載せておきます。
| 製品 | Dell PowerEdge 1850 |
|---|---|
| CPU | Intel Xeon 3GHz * 2 |
| メモリ | 6GB(実際使ってるのはピークでも2.3GBほど) |
| HDD | SCSI 73GB*2 RAID1 |
| OS | CentOS 4.1 |
| Apache | 2.0 |
| MySQL | 4.1 |
| ColdFusion | ColdFusion MX 7 スタンダード版 |
また、ピーク時のアプリケーションサーバーの稼働状況は以下の通り。
| ロードアベレージ | 約6 |
|---|---|
| リクエストを受けてるApache worker | 約80 |
| データベースアクセス | 約700アクセス/秒 |
| 平均リクエスト処理時間 | 約100ms |
ちなみに、はてなと同じくサーバーを足していけば、今の10倍程度のアクセスまではスケールアウトしていくような設計にしています。
俄然ColdFusionに興味が湧いてきたのではないでしょうか?
ColdFusionは実は優れた言語ではないかという考察 – 2に続く
追記2006/4/6
はてなブックマークでnaoyaさんに指摘されたのですが、確かに同じものを実装して性能比較しないと、同じぐらいのPVだからと言うことで出した5倍という数字は意味を成さないですね。失礼しました。
ColdFusion の再評価
アクセス数が増えてきたとき、ColdFusion はかなり性能がいいのではないか、という評価記事です。