java - 正常的应用多久一次Full GC?
天蓬老师
天蓬老师 2017-04-18 10:48:22
0
3
1856

我查看我们服务器的状态,半个月发生了900+次full gc,大约20分钟一次full gc,这是正常的吗?或者说优化到多久一次会比较合理?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(3)
PHPzhong

최적화되지 않았지만. 하지만 이를 최적화하기 위해서는 실제 비즈니스 요구와 비즈니스 역량을 기반으로 지원해야 한다고 생각합니다.

大家讲道理

Java 애플리케이션의 힙 크기와 qps를 살펴보는데 처음에는 20분마다 Full gc를 보면 정상적이지 않은 것 같습니다

PHPzhong

JVM 최적화는 몇 시간 동안 논의될 수 있습니다. 여기서는 체계적인 세부 사항을 다루지 않고 몇 가지 간단한 의견을 제시하겠습니다.

먼저 문제는 전체 GC가 빈번하다는 것입니다. 전체 메모리와 Old Generation 설정이 너무 작은지 확인하세요.
주로 -Xmx 및 -Xmn 매개변수에 따라 달라집니다. 너무 작으면 필연적으로 gc가 자주 발생합니다.

두 번째: 다음 매개변수 추가
-verbose.gc -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX: +PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution -Xloggc:/data/log/xxx/xxx-gc.log -XX:+PrintGCDetails
gc 때마다 Old Generation에 남은 공간, 일반적으로 말하면 공간을 확인합니다. Old Generation에서는 gc 이후 메모리의 2~2.5배로 설정하는 것이 더 합리적인 값입니다.
동시에 새로운 세대에서는 충분한 GC 없이 많은 수의 객체가 Old 세대로 들어가는지 여부를 이 로그를 통해 확인할 수 있습니다. New Generation을 통해 재활용이 가능한 객체가 Old Generation으로 들어가면 필연적으로 Full GC가 자주 발생하게 됩니다

셋째: 코드 이유 덤프 메모리
jmap -dump:live,format=b,file=xx.bin [pid]
그런 다음 MAT(http://www.eclipse .org/mat/) 어떤 대용량 메모리가 출시되지 않았는지 확인하는 도구

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿