페이지 트리

이 문서는 SonarQube / SonarScanner의 메모리 설정을 위한 가이드를 공유하기 위해 작성되었다. 


SonarQube를 사용 중 다음과 같은 증상이 발생하면 메모리 설정을 증대해야 한다. 

  • 모니터링 도구에서 하나이상의 SonarQube 프로세스가 메모리 제한에 도달했을 경우
  • SonarQube 프로세스가 충돌이 발생하거나 로그 파일에 out-of-memory 에러가 발생하는 경우
  • SonarQube의 백그라운드 잡(Background Task)이 out-of-memory 에러를 발생하는 경우
  • ElasticSearch 인스턴스의 이슈 인덱스 크기가 ElasticSearch Java 프로세스에 할당된 메모리 보다 클 경우


이러한 징후가 발생하면 SonarQube의 메모리 설정을 증대해야 한다. 

SonarQube의 메모리 설정은 sonar.properties 파일에서 -Xmx 메모리 설정을 수행할 수 있으며, 아래 경로에서 확인할 수 있다. 

  • $SONARQUBE-HOME/conf/sonar.properties


SonarQube의 경우 크게 3가지 프로세스가 존재하는데 각 프로세스에 따라 메모리 설정을 할 수 있다. 

  • Web의 경우 : sonar.web.javaOpts
  • ElasticSearch의 경우 : sonar.search.javaOpts
  • Compute Engine의 경우 : sonar.ce.javaOpts


-Xmx 파라미터는 메가바이트와 기가바이트로 설정할 수 있다. 아래 정보를 참고

sonar.ce.javaOpts=-Xmx2048m -Xms128m -XX:+HeapDumpOnOutOfMemoryError

sonar.ce.javaOpts=-Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError


만약 SonarScanner 수행중에 Java heap space error 혹은 java.lang.OutOfMemoryError가 발생하는 경우, SONAR_SCANNER_OPTS 환경 변수를 통해 메모리를 증대할 수 있음. 

리눅스

export SONAR_SCANNER_OPTS="-Xmx512m"

윈도우

set SONAR_SCANNER_OPTS=-Xmx512m


  • 레이블 없음