実運用環境にて「java.lang.OutOfMemoryError: Java heap space」エラーは ColdFusionの内部
エンジンであるJavaが確保するメモリが不足し、正常に処理が行えない場合に発生するエラーです。
ColdFusion Administrator で指定されている『最大 JVM ヒープサイズ (MB) 』(デフォルト 1024MB)は ColdFusion(の内部エンジンのJava仮想マシン)に割り当てられるメモリサイズとなります。ColdFusionの処理において大量のメモリを使用するような処理を行ったり、同時にリクエストが集中するような場合は、そのメモリ上限まで使用量が達するなど、メモリ不足の状態となり、「java.lang.OutOfMemoryError: Java heap space」エラーが発生致します。
上記2.の状態が特定の一つの処理で発生する場合は、その処理が中断した以外は正常に動作する場合がありますが、複数の処理によって継続的に引き起こされた場合などは、ガベージコレクションが何度も繰り返され高いCPU負荷と無応答時間が発生する場合があります。
また、発生のタイミングによっては、ColdFusionの内部で実行されている処理に影響が生じる場合があります。例えば、メールのスプール処理が中断してしまい<cfmail>のメールの送信処理が行われない(spoolフォルダに一時ファイルが滞留し続ける)場合や、スケジュールタスクが動かなくなるなどの影響が生じる場合があります。また、OutOfMemoryが発生する状況を繰り返すような場合は、ColdFusionアプリケーションの動作が不安定な状態になり、ページが表示されない現象が発生する場合があります。
実稼働環境で運用されているアプリケーション(作成した.cfmや.cfcの処理の内容、データベースなどから取得するデータ量、リクエストの頻度など)に依存するため、一概にすべての環境で現象が発生するとは限りません。ただし、ColdFusion Administratorでデフォルトととして割り当てられているサイズは、必要最小限のシステム構成に沿った値となっているため、運用されているアプリケーションの処理では不足することも考えられます。
ColdFusion 2018 Standard版では、ColdFusion ランタイムおよび ColdFusion 関連サービス用に 2 GB の RAM(4 GB 推奨)と定められています。ColdFusion Administrator で指定されている『最大 JVM ヒープサイズ (MB) 』(デフォルト 1024MB)は、最小のシステム要件に沿った値となっています
https://helpx.adobe.com/jp/coldfusion/standard/system-requirements.html
また、アプリケーション運用開始は問題がなくても、その後データが蓄積されることによって(例えば、データベースから取得するデータの上限を設けていないような場合)、運用開始から時を経て、エラーが発生するような場合もあります。
メモリを大量に使用しているような処理の内容を変える、あるいは「同時テンプレートリクエスト」数を減らすなどの方法も考えられますが、現在の『最大 JVMヒープサイズ(MB) 』のサイズだとアプリケーションの運用においてメモリが不足しているため、その値を増やすといった対応も有効な手段となります。
運用中のOSに空きメモリ(物理メモリ)がある場合は、『最大 JVM ヒープサイズ (MB) 』の数を増やして頂き、OutOfMemoryErrorの発生を回避する方法も一般的な対応方法のため、ご検討頂ければと存じます。
【注意】 OSのメモリ使用量に余裕があることを確認してください。
仮想OS環境など、割り当てメモリ量に余裕がない場合はメモリの増加を検討ください。
「参考手順」
ColdFusion Administratorの[デバックとロギング] > [デバック出力の設定]「メトリクスのロギングを有効にする」のチェックボックスを有効
https://helpx.adobe.com/coldfu
【例】
"Information","scheduler-1","1
「Total memory」が、ヒープとして確保されているメモリサイズ、「
ColdFusion 2018 では『パフォーマンス管理ツールセット(別のインストーラーで提供されているソフトウェア)』、ColdFusion 2016以前では Enterprise版でのみ使用可能な『サーバーモニター』でも測定が可能です
ColdFusion で、以下のような処理を行っている場合、処理に十分なメモリサイズを指定しているかを確認してください
記事公開日:2019年11月25日
最終更新日:2019年11月25日
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.
Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.