2010年11月13日土曜日

Quercas on Google App Engine

Quercus on Google App Engine利用時に、Slim3のServletで使われているように「load-on-startup」を「1」にしてやると、Spin-up時のcpu_msが3000前後でほぼ変わらないのに対し、Servletのレスポンスタイム(ms)が14000前後から3000前後と大幅に縮小されるのが確認できた。(まあ偏っただけかもしれないが・・)


「com.caucho.quercus.servlet.GoogleQuercusServlet」だけでは、効果が確認できなかった。そこで、GAEでは使わない「com.caucho.quercus.servlet.QuercusServlet」の設定を追加して、「load-on-startup」を「1」にしてやると、レスポンスタイムが短縮する変化が起きた。

WEB-INF/web.xml:

  <servlet>
    <servlet-name>quercus</servlet-name>
    <servlet-class>com.caucho.quercus.servlet.GoogleQuercusServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
      <servlet-name>QuercusHot</servlet-name>
    <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>


spin-up時間

残りの、quercusを動かすための設定は、
WEB-INF/appengine-web.xml:
    <static-files>
      <exclude path="/**.php" />
    </static-files>
    <resource-files>
      <include path="/**.php" />
    </resource-files>

WEB-INF/lib:
に、resin.jarを追加。

resin.jarが、大きいいので分割するのに、appengineのdeployには「--enable_jar_splitting」が必要でした。 # appengine-java-sdk-1.3.8/bin/appcfg.sh --enable_jar_splitting update WEB-INF/..

設定については、下記のページを参照してください。
・http://blog.caucho.com/?p=187
・http://www.atmarkit.co.jp/fcoding/articles/gaephp/02/gaephp02b.html (日本語環境の設定あり)