페이지 트리

이 문서는 SonarQube의 하드웨어 권장사항 및 전제 조건을 공유하기 위해 작성되었다.


도구명SonarQube
버전9.4





본문은 SonarQube 9.4 버전 기준으로 작성된 것으로, 최신 버전에 대한 것은 제조사 공식 문서를 참고한다.


하드웨어 권장사항

Database

대규모 인스턴스의 경우 SonarQube에서 사용하는 데이터베이스는 SonarQube Server와 물리적으로 분리되어 있지만 네트워크에서는 가까운 컴퓨터에서 호스팅되는 것이 좋습니다.

Oracle

SonarQube 서버가 Linux에서 실행 중이고 오라클을 사용하는 경우, /dev/random으로 인해 Oracle JDBC 드라이버가 차단될 수 있습니다.

이 문제에 대한 자세한 내용은 이 Oracle 문서를 참조하십시오.

JVM 매개 변수를 SonarQube 웹 서버 구성에 JVM 매개 변수를 추가하여 이를 방지 할 수 있습니다.

구성 :sonar.web.javaOpts

-Djava.security.egd=file:///dev/urandom


Elasticsearch (ES)

  • Elasticsearch는 SonarQube가 SearchServer 프로세스의 백그라운드에서 사용합니다. SonarQube의 우수한 성능을 보장하려면 ES 사용과 관련된 다음 권장 사항을 따라야합니다.

Disk

  • 사용 가능한 디스크 공간은 절대적인 요구 사항입니다. ES는 95% 디스크 사용량 워터마크에 도달하면 읽기 전용 모드에서 모든 인덱스를 잠그는 인덱스 데이터로 디스크가 넘쳐나지 않도록 안전 메커니즘을 구현합니다. ES 읽기 전용 인덱스에서 복구하는 방법에 대한 자세한 내용은 문제 해결 페이지를 참조하십시오.
  • 디스크는 ES의 병목 현상이 쉽게 될 수 있습니다. SSD를 구입할 수 있다면 회전하는 미디어보다 훨씬 우수합니다. SSD 지원 노드는 쿼리 및 인덱싱 성능이 모두 향상됩니다. 회전 미디어를 사용하는 경우 가능한 가장 빠른 디스크(고성능 서버 디스크 15k RPM 드라이브)를 구해 보십시오.
  • RAID 0을 사용하면 회전하는 디스크와 SSD 모두에서 디스크 속도를 높일 수 있는 효과적인 방법입니다. Elasticsearch 복제본 및 데이터베이스 기본 스토리지로 인해 RAID의 미러링 또는 패리티 변형을 사용할 필요가 없습니다.
  • NFS, SMB/CIFS 또는 NAS(네트워크 연결 스토리지)와 같은 원격 탑재 스토리지는 사용하지 마십시오. 이들은 종종 속도가 느리고, 평균 대기 시간의 편차가 더 큰 더 큰 대기 시간을 표시하며, 단일 실패 지점입니다.

Advanced

  • SSD를 사용하는 경우 OS I/O 스케줄러가 올바르게 구성되었는지 확인하십시오. 디스크에 데이터를 쓸 때 I/O 스케줄러는 해당 데이터가 실제로 디스크로 전송되는 시기를 결정합니다. 대부분의 *nix 배포판의 기본값은 cfq (Completely Fair Queuing)라는 스케줄러입니다. 이 스케줄러는 각 프로세스에 "시간 조각"을 할당한 다음 이러한 다양한 큐를 디스크로 전달하는 것을 최적화합니다. 회전 매체에 최적화되어 있습니다 : 회전 플래터의 특성으로 인해 물리적 레이아웃을 기반으로 디스크에 데이터를 쓰는 것이 더 효율적입니다. 그러나 이것은 회전하는 플래터가 없기 때문에 SSD의 경우 매우 비효율적입니다. 대신 마감일이나 멍청이를 사용해야합니다. 마감일 스케줄러는 쓰기가 보류 중인 기간을 기준으로 최적화되는 반면, noop은 단순한 FIFO 대기열에 불과합니다. 이 간단한 변화는 극적인 영향을 미칠 수 있습니다.
  • SQ 홈 디렉토리가 느린 디스크에 있는 경우 이 속성을 사용하여 데이터를 더 빠른 디스크(예: RAID 0 로컬 SSD)로 이동할 수 있습니다.sonar.path.data

Memory

  • OS용 시스템 사용 가능 메모리는 Elasticsearch Heap 크기 이상이어야 합니다. 그 이유는 Lucene (ES에서 사용됨)이 메모리 내 데이터 구조를 캐싱하기 위해 기본 OS를 활용하도록 설계되었기 때문입니다. 즉, 기본적으로 OS에는 최소 1Gb의 사용 가능한 메모리가 있어야합니다.
  • 32GB를 초과하여 할당하지 마십시오. 자세한 내용은 다음 Elasticsearch 문서를 참조하십시오.

CPU

  • 더 빠른 CPU 또는 더 많은 코어 중에서 선택해야하는 경우 더 많은 코어를 선택하십시오. 여러 코어가 제공하는 추가 동시성은 약간 더 빠른 클럭 속도보다 훨씬 큽니다.
  • 본질적으로 데이터는 여러 노드에 분산되므로 실행 시간은 가장 느린 노드에 따라 다릅니다. 하나의 빠르고 느린 상자보다 여러 개의 중간 크기의 상자를 갖는 것이 좋습니다.



전제 조건

SonarQube를 실행하려는 컴퓨터에 Java (Oracle JRE 또는 OpenJDK)를 설치할 수 있어야합니다.

하드웨어 요구 사항

  1. SonarQube 서버의 소규모 (개인 또는 소규모 팀) 인스턴스를 효율적으로 실행하려면 최소 2GB의 RAM이 필요하며 OS에는 1GB의 여유 RAM이 필요합니다. 대규모 팀 또는 엔터프라이즈용 인스턴스를 설치하는 경우 아래의 추가 권장 사항을 고려하십시오.
  2. 필요한 디스크 공간의 크기는 SonarQube로 분석하는 코드의 양에 따라 다릅니다.
  3. SonarQube는 읽기 및 쓰기 성능이 뛰어난 하드 드라이브에 설치해야합니다. 가장 중요한 것은 "data"폴더에는 서버가 실행 중일 때 엄청난 양의 I / O가 수행되는 Elasticsearch 인덱스가 있다는 것입니다. 따라서 뛰어난 읽기 및 쓰기 하드 드라이브 성능은 전반적인 SonarQube 서버 성능에 큰 영향을 미칩니다.
  4. SonarQube는 서버 측에서 32비트 시스템을 지원하지 않습니다. 그러나 SonarQube는 스캐너 측에서 32 비트 시스템을 지원합니다.


엔터프라이즈 하드웨어 권장 사항

대규모 팀 또는 SonarQube의 엔터프라이즈 규모 설치의 경우 추가 하드웨어가 필요합니다. 엔터프라이즈 수준에서 SonarQube 인스턴스를 모니터링하는 것은 필수적이며 인스턴스가 증가함에 따라 추가 하드웨어 업그레이드를 안내해야 합니다. 시작 구성에는 최소한 다음이 포함되어야 합니다.

  • 8 코어, 주요 SonarQube 플랫폼을 여러 컴퓨팅 엔진 작업자와 함께 실행할 수 있도록 허용
  • 16GB RAM 데이터베이스 및 ElasticSearch와 관련된 추가 요구 사항 및 권장 사항은 하드웨어 권장 사항을 참조하십시오.


지원되는 플랫폼

Java

SonarQube 서버에는 Java 버전 17이 필요하며 SonarQube 스캐너에는 Java 버전 11 또는 17이 필요합니다.

SonarQube는 준수하는 Java 버전에 관계없이 모든 종류의 Java 소스 파일을 분석 할 수 있습니다.

CPU(중요 패치 업데이트) 릴리스를 사용하는 것이 좋습니다.

JavaSonarQube ServerSonarScanner
Oracle JRE

(오류) 17
(눈금) 17
(눈금) 11
(눈금) 11
(오류) 8
(오류) 8
OpenJDK

(눈금) 17
(눈금) 17
(눈금) 11
(눈금) 11
(오류) 8
(오류) 8

Database

DatabaseVersion
PostgreSQL




(눈금) 13
(눈금) 12
(눈금) 11
(눈금) 10
(눈금) 9.6
(경고) UTF-8 문자 집합을 사용하도록 구성해야 합니다.
Microsoft SQL Server





(눈금) 2019 (MSSQL Server 15.0) 번들 마이크로 소프트 JDBC 드라이버와 함께. 익스프레스 에디션이 지원됩니다.
(눈금) 2017 (MSSQL Server 14.0) 번들 마이크로 소프트 JDBC 드라이버와 함께. 익스프레스 에디션이 지원됩니다.
(눈금) 2016 (MSSQL Server 13.0) 번들 마이크로 소프트 JDBC 드라이버와 함께. 익스프레스 에디션이 지원됩니다.
(눈금) 2014 (MSSQL Server 12.0) 번들 마이크로 소프트 JDBC 드라이버와 함께. 익스프레스 에디션이 지원됩니다.
(경고) 데이터 정렬은 대/소문자 구분(CS) 및 악센트 구분(AS)이어야 합니다(예: Latin1_General_CS_AS)
(경고) READ_COMMITTED_SNAPSHOT 과부하에서 발생할 수 있는 교착 상태를 피하기 위해 SonarQube 데이터베이스에 설정해야 합니다

(정보) Windows 인증("통합 보안")과 SQL Server 인증이 모두 지원됩니다. 인증 구성에 대한 지침은 서버 설치/설치/설치 페이지의 Microsoft SQL Server 섹션을 참조하십시오.

Oracle







(눈금) 19C
(눈금) 18C
(눈금) 12C
(눈금) XE 에디션
(경고) UTF8 제품군 문자 집합을 사용하도록 구성해야 합니다( 참조 NLS_CHARACTERSET)
(경고) 드라이버 ojdbc14.jar는 지원되지 않습니다.

(정보) 최신 Oracle JDBC 드라이버를 사용하는 것이 좋습니다.

(경고) OCI가 아닌 씬 모드만 지원됩니다.
(경고) 매개 변수만 지원되며 지원되지 않습니다. MAX_STRING_SIZE=STANDARDEXTENDED


웹 브라우저

SonarQube가 제공하는 모든 경험을 얻으려면 브라우저에서 JavaScript를 활성화해야합니다.

BrowserVersion
Microsoft Edge
(눈금) 최근
Mozilla Firefox
(눈금) 최근
Google Chrome
(눈금) 최근
Opera
(경고) 테스트되지 않음
Safari

(눈금) 최근




참조



  • 레이블 없음