2011年8月31日水曜日

OpenPNE2と3の負荷性能限界値を見てみる!の巻!

はい!ギュンばんわ!
あたしよ!

OpenPNE2と3の負荷性能限界値を見てみようかなぁと。

負荷検証の手法と環境的には、

■手法
15秒に5接続ずつアクセスを増やしていく。1接続は「ログイン->20回マイホームを呼ぶ」を繰り返す。
sar -rでWebサーバ(芭蕉1)を監視し、スワップしはじめたら終了する。
ツールは拙作の↓を使った。config.pyを設定して、python reqsan_manager.py とかで実行な感じ。
https://github.com/rysk92/webapp_monitor/blob/master/reqsan_manager.py

■環境
* サーバ(自作のコモデティなもの。Webx1/DBx1/負荷かける側x1。芭蕉1,2,3と命名。)
* OpenPNE3.6beta13(Doctrine版・コアだけ・メンバー数38万人)
* OpenPNE3.4.15(Doctrine版・コアだけ・メンバー数38万人)
* OpenPNE3.2.7.5(Doctrine版・コアだけ・メンバー数38万人)
* OpenPNE2.14.9(メンバー数38万人)

今までAPCが抜けてた(!!)ので、今回から入れてます。

で、結果は、

■結果

おっとBloggerって大解像度の画像はるとこうなるのか。。。
生pngは↓
https://github.com/rysk92/doc/raw/master/20110831_webapp_monitor_openpne/report.png

ピアレビュー用のもろもろの生データは、
https://github.com/rysk92/doc/tree/master/20110831_webapp_monitor_openpne
ツールは、
https://github.com/rysk92/webapp_monitor

使ったコモデティなハードも示してあるし、負荷性能検証のツールと結果の生データも示してあり、Webアプリのソフトウェア自体もFLOSSなので、ピアレビューできていいよね。

■考察
スワップが開始すると平均レスポンスタイムが跳ね上がり、ユーザ的にも使えないレベルになりますね。
仮に今回は平均レスポンス5秒以内がユーザが耐えられるサービス限界レベルとして考える(ホントは1秒以内位だと思うけど)。

■スワップ開始時点
- 2.14.9
-- PV:約3500PV/分(約58PV/秒)
-- 平均レスポンスタイム:約5秒
-- httpdのプロセス数:約4000
-- httpdの平均メモリ使用量:約7MB

- 3.2.7.5
-- PVは:約1100PV/分(約18PV/秒)
-- 平均レスポンスタイム:約15秒
-- httpdのプロセス数:約430
-- httpdの平均メモリ使用量:約18MB

- 3.4.15
割愛

- 3.6beta13
-- PV:約1400PV/分(約23PV/秒)
-- 平均レスポンスタイム:約13秒
-- httpdのプロセス数:約400
-- httpdの平均メモリ使用量:約22MB

■平均レスポンスタイム約5秒の時点
- 2.14.9
-- PV:約3500PV/分(約58PV/秒)
-- 全体のメモリ使用量:約90%(約7GB)
-- httpdのプロセス数:約1400
-- httpdの平均メモリ使用量:約7MB

- 3.2.7.5
-- PVは:約1100PV/分(約18PV/秒)
-- 全体のメモリ使用量:約40%(約3GB)
-- httpdのプロセス数:約180
-- httpdの平均メモリ使用量:約18MB

- 3.4.15
-- PV:約1100PV/分(約18PV/秒)
-- 全体のメモリ使用量:約40%(約3GB)
-- httpdのプロセス数:約200
-- httpdの平均メモリ使用量:約20MB

- 3.6beta13
-- PV:約1400PV/分(約23PV/秒)
-- 全体のメモリ使用量:約50%(約4GB)
-- httpdのプロセス数:約200
-- httpdの平均メモリ使用量:約22MB

な感じ。

■まとめ
芭蕉1のスペックだと3.6beta13の場合メモリよりCPUが先に限界がきている。
CPU(Intel Core 2 Quad Q8400S 2.66GHz)を据え置くならメモリは8GBじゃなくて4GBぐらいで良さそう。

また限界値テストからは若干外れるが、
平均レスポンスタイム約5秒周辺での各バージョンのザックリした対比は、

【2.14.9 vs 3.6beta13】
PV: 約3500PV/分 : 約1400PV/分 (2.14.9が約2倍こなせる)
httpdの平均メモリ使用量: 約7MB : 約22MB (2.14.9が約1/3)

【3.4.15 vs 3.6beta13】
PV: 約1100PV/分 : 約1400PV/分 (3.6beta13が約1.2倍こなせる)
httpdの平均メモリ使用量: 約20MB : 約22MB (3.6beta13が約1.1倍増えちゃってる)

■次回
サービスレベルを平均レスポンスタイム1秒以内ぐらいに注目して、もっとゆっくり負荷をかけて、検証してみようかな。
あと今回はコアだけにしてたので、バンドルプラグインをいれてやってみようかな。
あ、あとMediaWikiとかWordpressとかの負荷性能との対比もやりたいな。

2011年8月28日日曜日

段階的に負荷をあげて、OpenPNE3.6beta13とOpenPNE2.14.9の負荷性能を比較してみた!の巻!


はい!ギュンばんわ!

昨日に引き続き負荷性能の比較ですよと。
段階的に負荷を増やしての限界テストをやってみましたよと。

平均レスポンスタイムが5秒以内なところでいうと、

- OpenPNE3.6beta13(Doctrine版・コアだけ・マイホームにアクセス)
-- PVは、約700PV/分(約11PV/秒)
-- httpdの平均メモリ使用量は、約35MB
-- 平均レスポンスタイムは、約5秒

- OpenPNE2.14.9(マイホームにアクセス)
-- PVは、約1500PV/分(約25PV/秒)
-- httpdの平均メモリ使用量は、約13MB
-- 平均レスポンスタイムは、約2.5秒

な感じですかねー

段階的な負荷の上げ方は、15秒に1接続ずつ増やしていく感じでやりました。

なんかOpenPNE2.14.9が尻すぼみなのが気になる(ネットワークの調子がおかしくなった可能性あり)なので、再試験してみるかなぁ〜www

負荷をかけるのに使ったのは、今回あらたに作った↓であります。
https://github.com/rysk92/webapp_monitor/blob/master/reqsan_manager.py

Bloggerに移行してみる!の巻!

電脳ではたらくOpenPNE開発者の日記@ネットを「はてなダイアリー」でやってたんだけど、より安定して、より速いブログ環境を求めて、Bloggerに移行してみるよと。