Coldfusion/Apacheを実行しているCentOSサーバーのメモリ使用量を明確にするためのサポートが必要です。
ファイルをメモリに読み込み、1行ずつ処理し、DBに挿入して、ファイルを削除するスクリプトがあります。最善のプロセスではなく、それに取り組んでいますが、今のところはやらなければなりません。
ファイルが読み取られると、メモリの負荷がかかり、サーバーがスワップファイルを使用する原因になり、実際に応答しなくなりました-合計RAM TOPでの使用量は3.9/3.9 GBで、スワップは1.5/1.9
再起動する必要があり、合計使用量RAMが約2GBに低下し、スクリプトを実行すると3GBに戻りました。過去数時間で3.3GBにゆっくりと増加しました-私はまだある程度のスペースがあり、サイトはすべて応答しますが、メモリは解放されていません。
また、再起動後、FusionReactorは私の最大ヒープと割り当てヒープを3.93GBと表示し、0.3GBから1GBの範囲で使用されます。これはTOPの言うことと一致しません。これは3.9の58%でCF9であり、約2.25GBです。
スクリプトは一晩でデータをインポートするので、後で実行すると、スワップに流出してサイトの速度が一晩遅くなると思います(一晩でトラフィックが少ないが、修正が必要です-今は無効にする必要があります)
だから私が理解していない2つのこと:
fileClose
がありません-CFCが多すぎますか?)[〜#〜] update [〜#〜] --jvm.config、コメントのほとんどは少ない
# Where to find JVM
Java.home=/opt/coldfusion9/runtime/jre/
# Arguments to VM
Java.args=-server -Djava.awt.headless=true -Xms4096m -Xmx4096m
-Dsun.io.useCanonCaches=false -XX:ParallelGCThreads=2 -XX:PermSize=64m
-XX:+UseConcMarkSweepGC -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=4
-XX:+UseParNewGC -XX:MaxPermSize=192m -Dcoldfusion.rootDir={application.home}/../
-Dcoldfusion.libPath={application.home}/../lib -Dcoldfusion.classPath=
{application.home}/../lib/updates,{application.home}/../lib,
{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB-INF/flex/jars,
{application.home}/../wwwroot/WEB-INF/cfform/jars -
javaagent:/opt/fusionreactor/instance/coldfusion.CF9Standalone.cc02/
fusionreactor.jar=name=coldfusion.CF9Standalone.cc02,address=8088
# commas will be converted to platform specific separator and the result will be passed
# as -Djava.ext.dirs= to the VM
Java.ext.dirs={jre.home}/lib/ext
# where to find shared libraries
Java.library.path={application.home}/../lib
system.path.first=false
# set the current working directory
Java.user.dir={application.home}/../../lib
# JVM classpath
Java.class.path={application.home}/servers/lib,{application.home}/../lib/
macromedia_drivers.jar,
{application.home}/lib/cfmx_mbean.jar,{application.home}/../lib/oosdk/classes,
{application.home}/../lib/oosdk/lib,{application.home}/lib
ヒープ設定は2ではなく4ギグを構成します-それはXms4096m-Xmx4096mがあなたに言っていることです。パーマサイズはさらに200メガを追加します。新しいサイズ(若い世代が1回の操作で取得する量)は非常に大きく(通常、この数は64mから256mの間です)、若いヒープを上下にローミングするための生成スペースを提供します。
したがって、3.9gがアクティブであることがわかるという事実は正しいですが、4.2のようなものが表示されると思います。それでもTopは、JVM割り当てで奇妙な計算を行うことがあります。
あなたはColdFusion/Jrunがファイルを全体としてメモリに(ヒープに)読み込むことは正しいです-したがって、ヒープはそれを収容するのに十分な大きさである必要があります。それでも、小さなファイルでも若い世代をトリガーすると、newsizeパラメータのために、完全なギガバイトの割り当てが発生します。
サーバーに合計4ギガしかない場合は、newsizeとmaxnewsizeを256mに設定し、ヒープを3072mに設定してXms3072m-Xmx3072mのようにすることをお勧めします。
これらの設定は64ビットCF 9サーバー-に適用されます。32ビットを実行している場合、32ビットプラットフォームすべてに固有の連続したmemの問題により、ヒープに対して約2ギガの厳しい制限があります。幸運を。