문제

Jboss를 통해 실행되는 Icefaces 응용 프로그램을 사용하고 있습니다. 현재 Heapsize가 설정되어 있습니다.

-xms1024m –xmx1024m -xx : maxpermsize = 256m

JBOSS의 메모리 매개 변수를 5 (5.0.1 GA) JVM 6으로 조정하는 것이 좋습니다.

도움이 되었습니까?

해결책

이것에 따르면 기사:

AS 5는 욕심으로 알려져 있습니다. 페름기. 시작할 때 종종 던지는 경우가 종종 있습니다 OutOfMemoryException: PermGen Error.

이것은 자주 응용 프로그램을 배포 할 때 개발 중에 특히 성가신 일 수 있습니다. 이 경우 JBoss QA는 추천합니다 Permgen 크기를 높이고 클래스를 내리고 허용 및 Permgen Sweep을 허용합니다.:

-XX:PermSize=512m -XX:MaxPermSize=1024 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

그러나 이것은 더 FYI입니다. 저는이 구성을 맹목적으로 적용 할 것을 제안하지 않습니다 (사람들이 댓글에 썼 듯이, "부러지지 않으면 고치지 마십시오").

힙 크기와 관련하여 항상 명심하십시오. 힙이 클수록 주요 GC가 더 길어집니다.. 이제 "너무 작았습니다"라고 말할 때, 나는 이것이 무엇을 의미하는지 (오류, 증상 등)를 실제로 모릅니다. 내가 아는 한, 1024m 힙은 실제로 웹 아프에 꽤 크며 실제로 대부분의 사람들에게 충분해야합니다. 주요 GC 기간을 조심하십시오.

다른 팁

HEAP : 512MB로 시작하여 앱을 얻지 말아야한다고 생각하는 곳으로 캡을 설정하고 서버가 스왑을 시작하지 않도록하십시오.

Permgen : 앱이 앱에 사용 된 모든 클래스를 읽으면 일반적으로 충분히 안정적입니다. 앱을 테스트 한 후 256MB로 작동하면 그대로 두십시오.

@WDS : 두 가지 이유로 힙 최대 값을 최대한 높게 설정하는 것은 확실히 좋은 생각이 아닙니다.

  1. 큰 힙은 전체 GC가 더 오래 걸립니다. Permgen 스캔이 활성화 된 경우 큰 Permgen 공간이 GC에 더 오래 걸립니다.
  2. Linux에서와 같이 JBoss는 미사용 I/O 핸들이 Linux를 강제로 청소할 수있을 정도로 오랫동안 열려있을 수 있으며, 완료 될 때까지 기계의 모든 프로세스를 차단할 수 있습니다 (1 분 이상 걸릴 수 있습니다!). 핫 배치 스캐너를 끄는 것을 잊어 버리면 훨씬 더 자주 발생합니다.

이것은 내 신청서에서 일주일에 한 번 내가 다음과 같습니다.

  1. 스타트 업으로서 Jboss가 속도가 느려지기 시작한 지점으로 -xms를 줄였습니다.
  2. 전체 GC가 더 자주 발생한 지점으로 -xmx를 줄이기 때문에 Linux I/O 핸들 정리 중지

개발자에게는 Permgen을 늘리는 것이 좋다고 생각하지만 생산에서는 긴 GC 일시 정지를 피하기 위해 필요한 것만 사용하고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top