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個取得
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO3g1Vv4l7Kaef35Ia6qbKi2cby8w0ln_dZfIbDQGjp6k-JGRmgSRtducDliVc0gpGFhm_JDVDDEdOp9y4aSAB9hyGT09RHl2rM9SAKVAg8GAAI88Vm-U8hqPNJI7evqRiD9iMzw/s400/ec2large.png)
また、Google App Engineを間に置くことでレイテンシーを50%も改善できることがわかった。100件のPDF(1.5Mb)の生成10秒、転送12秒の合計22秒かかるが、GAEを介した場合、なんと16秒で取得できる。これは転送時間を半分にする計算である。
もともとGAEは近くのサーバが選択されるため①、④は高速であることはわかっていた。また、EC2とGAE間も非常に高速であることから、このようなレイテンシー改善になったのである。(CloudFrontはいらない?)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoUuHDzAFvfj_YhinoEWHaStHPkMqC74NeXpEN4aHVZwPBQ1-yRw1509xyDxuZQ8MMo9szVHOzdDKpkYLooMF1rfgmmFmBsKuN1VMzRTLlD_bo4suLqFW9m7A5JCHhSpmIpbKDbg/s400/ec2ratency.png)
0 件のコメント:
コメントを投稿