The only prerequisite for running SonarQube is to have Java (Oracle JRE 8 or OpenJDK 8) installed on your machine.
Note: On Mac OS X it is highly recommended to install Oracle JDK 8 instead of the corresponding Oracle JRE since the JRE installation does not fully set up your Java environment properly. See this post for more information.
- The SonarQube server requires at least 2GB of RAM to run efficiently and 1GB of free RAM for the OS.
- The amount of disk space you need will depend on how much code you analyze with SonarQube. As an example, SonarCloud the public instance of SonarQube, has more than 30 millions lines of code under analysis with 4 years of history. SonarCloud is currently running on a Amazon EC2 m4.large instance, using about 10 Gb of drive space. It handles 800+ projects having roughly 3M open issues. SonarCloud is running on PostgreSQL 9.5 and it is using about 15Gb of drive space.
- SonarQube must be installed on hard drives that have excellent read & write performance. Most importantly, the "data" folder houses the Elasticsearch indices on which a huge amount of I/O will be done when the server is up and running. Great read & write hard drive performance will therefore have a great impact on the overall SonarQube server performance.
|The SonarQube Java analyzer is able to analyze any kind of Java source files regardless of the version of Java they comply to. But SonarQube analysis and the SonarQube Server require specific versions of the JVM.|
Must be configured to use UTF8 charset
2012 (MSSQL Server 11.0)
Collation must be case-sensitive (CS) and accent-sensitive (AS) (example: Latin1_General_CS_AS)
Both Windows authentication (“Integrated Security”) and SQL Server authentication are supported. See the Microsoft SQL Server section in Installing page for instructions on configuring authentication.
Must be configured to use a UTF8-family charset (see NLS_CHARACTERSET)
The driver ojdbc14.jar is not supported
(not recommended for large instance)
Must be configured to use UTF8 charset and a case-sensitive (CS) collation
Only InnoDB storage engine is supported, but not MyISAM
Microsoft Internet Explorer
If you're running on Linux, you must ensure that:
- vm.max_map_count is greater or equals to 262144
- fs.file-max is greater or equals to 65536
- the user running SonarQube can open at least 65536 file descriptors
- the user running SonarQube can open at least 2048 threads
You can see the values with the following commands :
You can set them dynamically for the current session by running the following commands as root:
To set these values more permanently, you must update either /etc/sysctl.d/99-sonarqube.conf (or /etc/sysctl.conf as you wish) to reflect these values.
If the user running SonarQube (sonarqube in this example) does not have the permission to have at least 65536 open descriptors, you must insert this line in /etc/limits.d/99-sonarqube.conf (or /etc/limits.conf as you wish) :
You can get more detail in the Elasticsearch documentation.
By default, Elasticsearch is using seccomp filter. On most distribution this feature is activated in the kernel, however on distribution like Red Hat Linux 6 this feature is deactivated. If you are using a distribution without this feature and you cannot upgrade to a newer version with seccomp activated, you have to explicitly deactivate this security layer by updating sonar.search.javaAdditionalOpts in sonar.properties :
You can check if seccomp is available on your kernel with :
If your kernel has seccomp, you will see :
For more detail, see the Elasticsearch documentation.