Wednesday, September 26, 2012

Alfrescoのチューニングポイント(概要)

mryoshioです。

今日の内容はAlfrescoについての話になります。Alfrescoについてのインストールや初期設定については書き秋田こういう他の記事を参考にして頂くとして、今日はチューニングポイントの概要として少しだけ突っ込んだ話を書きたいと思います。
システムを構築する上で当然パフォーマンスには注意しなければならず、Alfrescoを使う場合でも同様です。JVMチューニングについてはここで少し触れられていますが、Alfrescoのチューニングポイントについての日本語のまとめは情報としてないと思います。そのため今日の内容を書くことにしました。
なお、AP(アプリケーション)サーバとしてTomcatを使っているという前提で進めます。
  • JVMの設定
    • bin/catalina.sh(Windowsの場合はcatalina.bat)
      • ヒープ領域の最大サイズ(Xmx)
      • ヒープ領域の最小サイズ(Xms)
      • Permanent領域の最大サイズ(MaxPermSize)
  • アプリケーションサーバソフトウェアの設定
    • server.xml
      • 最大スレッド数(maxThreads)
  • DBコネクションプールの設定
    • shared/classes/alfresco-global.properties
      • 最大プール数(db.pool.max)
      • インデクスリカバリ時の最大プール数(index.recovery.maximumPoolSize)
  • Luceneの設定
    • (設定項目が多いので別の機会)にご説明します。
普段Alfrescoを触っていてレスポンスが遅いと感じた場合、以上の項目をまず始めにチェックします。JVMの設定とアプリケーションサーバソフトウェアに関してはAlfrescoならではの話でないので割愛します。DBコネクションプールおよびLuceneの設定についてですが、まず前提としてお話したいのが、ほとんどの項目を設定をalfresco-global.properitesで行えるということです。ですので、Alfresco固有の設定はこのファイルで行うことになります。

DBコネクションプールについては、まずdb.pool.maxを確認します。たとえば、利用しているDBの最大接続数が200となっている時にAlfrescoの設定が32となっていると当然ながら最大性能を発揮するには程遠くなりますので注意しましょう。次にindex.recovery.maximumPoolSizeです。これは、Alfrescoが使うLuceneインデクスをリカバリ(再構築)する際に使用する最大プール数です。もしインデクスリカバリを実行していて遅いと感じた場合はここが関係している可能性があります。

4つ目のLuceneの設定に関しては、項目が多いのでまた別の機会に書きたいと思います。

他にsystem.acl.maxPermissionCheckTimeMillis等の設定についても書きたかったのですが、パフォーマンスとは異なるのでそれもまた別の機会に。

@mryoshio


No comments: