2011-02-11 4 views
1

Apache Maven을 사용하여 빌드 된 알맞은 크기의 GWT (Google Web Toolkit) 프로젝트가 있습니다. 빌드 프로세스에는 8 RPM과 2 번의 전쟁이 포함됩니다.거대한 양의 메모리를 사용/할당하는 Maven 빌드

저는 게스트 OS로 CentOS 5.2를 실행하는 원격 가상 서버에서 프로젝트를 빌드하려고합니다. 게스트 OS는 스왑 공간을 사용할 수 없기 때문에 상자를 만들기 위해 엄청난 양의 메모리를 할당해야합니다. 그렇지 않으면 java could not allocate memory error (error=12)이됩니다. 7GB 미만의 용량이 있으면 빌드가 실패합니다. 나는이 7GB의 대부분이 사용되지 않았다고 생각하지만 어떤 이유로 할당되었습니다. 출력 읽기 빌드의 끝에서

: [INFO] Final Memory: 178M/553M

은 제가 받는다는 빌드가 적은 메모리를 사용하는 방법을 모르겠어요 -Xms256m -Xmx1024M

-MAVEN_OPTS 세트가 있습니다. 어떤 제안이라도 대단히 감사합니다.

+0

로그를 보지 않고 말할 수는 없지만 GWT 컴파일러는 많은 메모리가 필요합니다. 문제가 아닌지 확인할 수 있습니까? 또한 JMX를 활성화하고 JVisualVM을 사용하여 Maven 및 GWT 컴파일러 프로세스의 메모리 사용량을 볼 수 있습니다. RPM 구축은 대개 메모리를 많이 차지하지 않습니다. –

답변

2

이 메모리는 최대 553M 만 필요하다는 것을 나타내므로 MAVEN_OPTS의 설정이 이미 필요한 것보다 위에 있습니다. 그 이하로 사용하고 싶다고 말하고 있습니까, 아니면 현재 오류가 있습니까?

3

maven gwt 플러그인 (및 maven surefire)과 같은 forking 플러그인은 maven 실행에 의해보고 된 총 "외부"인 메모리를 사용합니다. "jps -lv"의 출력을 사용하여 OS 레벨 프로세스 크기를 corrolating하여 어떤 포크가 모든 메모리를 훔쳐 가고 있는지 확인하는 것이 좋습니다.

예를 들어, 분기 된 프로세스가 종료되지 않으면 매우 빠르게 혼잡해질 수 있습니다.

관련 문제