运行SonarQube 5.3服务器,我遇到了极慢的响应时间问题,因此各种作业扫描程序出现了很多套接字超时错误。只是为了给出一些观点,SonarQube运行在Windows 7机器上(不要问),Jenkins也是如此(在tomcat的单独实例中)
Jenkins的响应时间:平均<0.1秒
SonarQube的响应时间:3-30秒,平均约9-12秒范围
SonarQube作为Windows服务安装,而Jenkins正在运行的是Tomcat。
SQ运行的数据库服务器是Oracle,我真的怀疑这是延迟的来源,因为Oracle服务器既快又本地......这里是jvm选择sq
sonar.web.javaOpts=-Xmx1536m -Xms256m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -server -Djava.net.preferIPv4Stack=true -Djruby.compile.invokedynamic=false -Dfile.encoding=UTF-8
在java 1.8_u45
我有点不知所措,因为我不知道如何改善响应时间? (除了可能在其他硬件/操作系统上运行它。)
答案 0 :(得分:0)
通过执行以下操作,我能够大大缩短服务器的响应时间:
仍有一些差异,我需要分析,但重新启动sq后,平均延迟显着下降(平均响应在~0.6秒与10+之间),它仍然有点慢imo,但是因为sq是只在内部使用,我很好。最重要的是,没有一个扫描仪作业失败。在重新启动之前,具有套接字超时的作业的故障率约为60%
答案 1 :(得分:0)
也许您可以添加要排除的文件以缩小扫描范围。
尝试排除不需要的文件。 https://docs.sonarqube.org/latest/project-administration/narrowing-the-focus/
我还发现,如果禁用声纳scm,扫描速度通常会更快
项目->项目设置-> SCM->禁用SCM传感器(选中)
sonar.scm.disabled = true