この記事では、AEM Forms デプロイメントのボトルネックを減少しパフォーマンスを最適化するための戦略とベストプラクティスを検討します。
AEM Web 設定コンソールの Mobile Forms の設定コンポーネントを使用して、AEM Forms のキャッシュ方法の設定と制御を行うことができます。AEM Web 設定コンソールの URL は次のとおりです。
https://'[server]:[port]'/system/console/configMgr
https://'[server]:[port]'/lc/system/console/configMgr
キャッシングに使用できるオプションは次のとおりです。
AEM Forms のデフォルトキャッシュ設定は、最適なパフォーマンスを得るためには十分でない場合があります。したがって、次の設定を使用することを推奨します。
AEM ディスパッチャーを使用してアダプティブフォームをキャッシュする場合、データが事前入力されたフォームが含まれているアダプティブフォームもキャッシュされます。このようなフォームが AEM ディスパッチャーのキャッシュから提供されると、事前入力されたデータや古いデータがユーザーに提供される場合があります。このため、AEM ディスパッチャーの使用は、データが事前入力されていないアダプティブフォームをキャッシュする場合に制限してください。さらに、ディスパッチャーのキャッシュではキャッシュされたフラグメントが自動的に無効になりません。このため、フォームフラグメントをキャッシュする場合には使用しないでください。このようなフォームとフラグメントには、アダプティブフォームのキャッシュを使用してください。
最適なパフォーマンスを得るために、次の JVM init
引数を使用して、Java heap
と PermGen
を設定することを推奨します。
set CQ_JVM_OPTS=%CQ_JVM_OPTS% -Xms8192m
set CQ_JVM_OPTS=%CQ_JVM_OPTS% -Xmx8192m
set CQ_JVM_OPTS=%CQ_JVM_OPTS% -XX:PermSize=256m
set CQ_JVM_OPTS=%CQ_JVM_OPTS% -XX:MaxPermSize=1024m
推奨設定は、Windows 2008 R2 8 コアおよび Oracle HotSpot 1.7 (64 ビット) JDK を対象とし、ご使用のシステム構成に従ってスケールアップまたはスケールダウンする必要があります。
アダプティブフォームおよび HTML5 フォームは HTML5 形式でレンダリングします。フォームサイズとフォーム内の画像のような要素によって、結果の出力が大きくなる場合があります。データ転送を最適化するために、推奨されるアプローチは要求を対処する Web サーバーを使用して HTML 応答を圧縮することです。このアプローチは応答サイズ、ネットワークトラフィック、およびサーバーとクライアントマシンの間でのデータのストリーミングに要する時間を減少させます。
例えば、次の手順を実行して、JBoss 搭載の Apache Web Server 2.0 32 ビット上で圧縮を有効にします。
次の手順は Apache Web Server 2.0 32 ビット以外のサーバーには適用されません。その他のサーバーに固有の手順については、対応する製品ドキュメントを参照してください。
次の手順では、Apache Web サーバーで圧縮を有効にするために必要な変更を示します。
オペレーティングシステムに適した Apache Web サーバーソフトウェアを入手します。
Apache は HTTP プロトコルを使用して CRX と情報をやり取りできます。HTTP を使用した場合に最適化される設定になっています。
APACHE_HOME/conf/httpd.conf
ファイル内で次のモジュール設定をコメント解除します。
LoadModule proxy_balancer_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_http.so
LoadModule deflate_module modules/mod_deflate.so
Linux の場合、デフォルトの APACHE_HOME
は /etc/httpd/
です。
crx のポート 4502 のプロキシを設定します。次の設定を APACHE_HOME/conf/httpd.conf
設定ファイルに追加します。
ProxyPass / https://<server>:4502/
ProxyPassReverse / https://<server>:4502/
圧縮を有効化します。次の設定を APACHE_HOME/conf/httpd.conf
設定ファイルに追加します。
HTML5 フォームの場合
<Location /content/xfaforms>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
#Don’t compress
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
#Dealing with proxy servers
<IfModule mod_headers.c>
Header append Vary User-Agent
</IfModule>
</IfModule>
</Location>
アダプティブフォームの場合
<Location /content/forms/af>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
#Don’t compress
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
#Dealing with proxy servers
<IfModule mod_headers.c>
Header append Vary User-Agent
</IfModule>
</IfModule>
</Location>
crx サーバーにアクセスするには、https://'server':80
を使用します。ここで、server
は Apache サーバーが実行されているサーバーの名前です。
ウイルス対策ソフトウェアが実行されているサーバーでは、パフォーマンスが低下する場合があります。常時オンになっているウイルス対策ソフトウェア(オンアクセススキャン)は、システム上のすべてのファイルをスキャンします。そのため、サーバーと AEM Forms のパフォーマンスが低下する可能性があります。
パフォーマンスを改善するには、以下に示す AEM Forms のファイルとフォルダーを常時オンのスキャン(オンアクセススキャン)から除外するようにウイルス対策ソフトウェアを設定してください。
AEM のインストールディレクトリ。このディレクトリ全体を除外できない場合は、以下の項目を除外してください。
アプリケーションサーバーの一時ディレクトリ。デフォルトの場所は以下のとおりです。
(JEE 上の AEM Forms のみ) Global Document Storage(GDS)ディレクトリ。デフォルトの場所は以下のとおりです。
(JEE 上の AEM Forms のみ) AEM Forms サーバーのログファイルと一時ディレクトリ。デフォルトの場所は以下のとおりです。
https://'[server]:[port]'/adminui
を開いてホーム/設定/コアシステム設定/コア設定に移動し、現在使用している場所を確認してください。