Javaアプリケーションでパフォーマンスの問題が発生したため、プロファイリングにJavaMelodyを使用しましたが、珍しいことは「Used Memory」グラフです。それは〜8GBのラインに達するように見える短いスパイクをたくさん持っていて、私が理解するように、GCはメモリをきれいにしています。誰かがこれらのスパイクが何を意味するかを追跡する経験がありますか?彼らはいくつかの特定の問題を指摘しているようです。Java:「used memory」グラフの頻繁な急上昇
GCとJVMのように構成されている: -XX:PermSizeを= 384メートル -XX:MaxPermSizeを= 512メートル -XX:+ UseCompressedOops -XX:+ UseFastAccessorMethods -XX:+ CMSClassUnloadingEnabled -XX:+ UseParNewGC -XX:-UseParallelOldGC -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio = 128 -XX:NewSizeパラメータ= 4055メートル -XX:MaxNewSize = 4055メートル -XX:+ UseConcMarkSweepGCを -XX:CMSInitiatingOccupancyFraction = 60 -XX:+ [UseCMSInitiatingOccupancyOnly] -Xms12888 M -Xmx12888m -Dsun.rmi.dgc.client.gcInterval = 1800000 -Dsun.rmi.dgc.server.gcInterval = 1800000
グラフは、(グリーン、ブルーの "最大" である "平均")であります: Memory graph - 16:00 - 8:00 system without load, 8:00+ - system is under load
までシステムに負荷はありませんでした。
8時00後、それに負荷がかかっていますが、ない巨大な1(〜20のsimultanious操作)
実際にはリークがあり、あまりにも多くのオブジェクトが作成されました。 SurvivorRatioも高すぎました。ありがとう! – Immortal