Java Process Memory
SQ Official Doc Link: https://docs.sonarqube.org/display/SONAR/Java+Process+Memory
Table of Contents
SonarQube 어플리케이션 서버는 3개의 메인 자바 프로세스로 구성됩니다:
- Web (내장된 웹 서버 포함)
- ElasticSearch
- Compute Engine
각 자바 프로세스는 고유의 메모리 설정값을 가지고 있으며, 이 값은 sonar.properties 파일을 통해 설정할 수 있습니다. 기본 설정값을 사용해도 일반적인 상황에서는 큰 무리가 없습니다. 대규모의 SonarQube 인스턴스(100 사용자 이상 혹은 5,000,000 라인의 코드 등)를 사용하고자 하거나, 지속적인 통합 파이프라인의 일부로 활용하려는 경우에는 이 인스턴스들의 메모리 및 CPU 사용율, 디스크 사용량을 반드시 모니터링해야 합니다. 모니터링을 통해 어떤 프로세스들의 자원이 부족한지, 자원 부족 상황이 오기 전에 어떤 일을 해야할지 알 수 있습니다. 오픈 소스 및 상용 모니터링 도구들을 함께 사용할 수 있습니다. SonarSource는 특정 도구들을 추천하거나 권장하지는 않습니다.
메모리 설정
다음 상황이 발생하는 경우, 메모리 증가가 필요할 수 있습니다:
- 모니터링 도구가 하나 혹은 그 이상의 SonarQube 프로세스가 메모리 한계에 이르렀음을 보고 하는 경우
- 하나 혹은 그이상의 SonarQube 프로세스가 ouf-of-memory 현상으로 중단된 내용이 sonar.log 파일에 기록된 경우
- SonarQube의 백그라운드 태스크가 out-of-memory 현상으로 실패한 내용이 백그라운드 태스크 로그에 기록된 경우
- 엘라스틱서치 인스턴스(시스템 정보에서 확인 가능)의 Issues 인덱스 사이즈가 엘라스틱서치 자바 프로세스에 할당된 메모리 이상인 경우
각 자바 프로세스의 -Xmx
메모리 설정값을 변경해서 해당 프로세스에 할당된 최대 메모리 값을 지정할 수 있습니다. 해당 속성은 sonar.properties 파일에 입력합니다:
- Web:
sonar.web.javaOpts
- ElasticSearch:
sonar.search.javaOpts
- Compute Engine:
sonar.ce.javaOpts
-Xmx
속성값으로는 메가바이트(e.g. -Xmx2048m
) 혹은 기가바이트(e.g. -Xmx2G
)를 사용할 수 있습니다.
JMX Beans 및 ElasticSearch 모니터링 옵션과 관련된 자세한 내용은 모니터링 페이지를 참조합니다.
© 2017-2018 Moses Kim.
별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.
::: SonarQube 관련 문의 : 이메일 :::