Java 어플리케이션의 성능상의 문제로 프로파일 링을 위해 JavaMelody를 사용했으며 비정상적인 것은 "Used Memory"그래프입니다. 그것은 ~ 8GB 라인에 도달하는 것처럼 보이는 짧은 스파이크를 많이 가지고 있습니다. 그리고 이해합니다. GC는 메모리를 정리하고 있습니다. 누군가가 이러한 스파이크의 의미를 추적 할 수 있습니까? 그들은 특정 문제를 지적한 것처럼 보입니다.Java : "used memory"그래프의 빈번한 스파크
GC JVM과 같이 구성된다 : -XX : PermSize = 384m -XX :를 MaxPermSize = 512m -XX : + UseCompressedOops -XX : + UseFastAccessorMethods -XX : + CMSClassUnloadingEnabled -XX : + UseParNewGC -XX : -UseParallelOldGC -XX : -UseAdaptiveSizePolicy -XX : SurvivorRatio = 128 -XX : newSize와 = 4,055m -XX : MaxNewSize = 4,055m -XX : + UseConcMarkSweepGC -XX : CMSInitiatingOccupancyFraction = 60 -XX : + 컴퓨터 사용 시작 작업 만 사용 -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 시까 지 시스템에 부하가 없습니다. 당신은 JVM에 대한 정상 작동 당신의 에덴 공간에서 객체를 할당하는 것 같은
는 부하의 8시 후있지만 거대한 하나 (~ 20 개에 동시 작업)
사실 누수가 있었고 너무 많은 물체가 만들어졌습니다. SurvivorRatio도 너무 높았습니다. 감사! – Immortal