Amazon EC2の高スペックなマシン(c1.xlarge)にReflex iTextのインスタンスを載せてパフォーマンスを測定してみた。c1.xlargeは、Opteron 1.0-1.2GHz相当20Unit分、Memoryは7Gあり、Celelon 2.2Ghz、512Mの約10倍のパフォーマンスだった。
Reflex iTextのスループットは、(予想通り)20個のJettyを起動して並列実行させたときに最大を示し、1Jettyあたり20ページ作成で133ページ/秒を出した。
PDF生成パフォーマンステスト
* 20プロバイダ*20ページだと133ページ/s
* Total 3秒
* テンプレートHTMLは51Kb*20回取得
* エンティティXMLを300Kb*20個分割して取得
* 20プロバイダ*5ページで1秒なのでHTMLとXMLの転送コストはほとんどないと考えられる
* 1プロバイダ*400Pだと10ページ/s
* Total 40秒
* テンプレートHTMLは51Kb*1回取得
* エンティティXML 6Mbを1個取得
また、Google App Engineを間に置くことでレイテンシーを50%も改善できることがわかった。100件のPDF(1.5Mb)の生成10秒、転送12秒の合計22秒かかるが、GAEを介した場合、なんと16秒で取得できる。これは転送時間を半分にする計算である。
もともとGAEは近くのサーバが選択されるため①、④は高速であることはわかっていた。また、EC2とGAE間も非常に高速であることから、このようなレイテンシー改善になったのである。(CloudFrontはいらない?)
0 件のコメント:
コメントを投稿