Java sonarqube服务器的响应速度非常慢

Java sonarqube服务器的响应速度非常慢,java,sonarqube,response-time,sonarqube-ops,Java,Sonarqube,Response Time,Sonarqube Ops,运行SonarQube 5.3服务器时,我遇到了响应速度非常慢的问题,导致各种作业扫描程序出现了大量套接字超时错误。仅从一些角度来看,SonarQube正在Windows7上运行(不问),Jenkins也在运行(在tomcat的一个单独实例中) Jenkins的响应时间:通过执行以下操作,我能够大大提高服务器的响应时间: 重新启动(每天计划) 安排一个周期性轮询服务器的进程(只需一个shell脚本执行curl并每隔几分钟记录一次响应时间) 仍然存在一些差异,我需要对此进行分析,但在重新启动sq后

运行SonarQube 5.3服务器时,我遇到了响应速度非常慢的问题,导致各种作业扫描程序出现了大量套接字超时错误。仅从一些角度来看,SonarQube正在Windows7上运行(不问),Jenkins也在运行(在tomcat的一个单独实例中)


Jenkins的响应时间:通过执行以下操作,我能够大大提高服务器的响应时间:

  • 重新启动(每天计划)
  • 安排一个周期性轮询服务器的进程(只需一个shell脚本执行curl并每隔几分钟记录一次响应时间)

  • 仍然存在一些差异,我需要对此进行分析,但在重新启动sq后,平均延迟显著下降(平均响应时间约为0.6秒,而不是10秒以上),在我看来仍然有点慢,但由于sq仅在内部使用,我可以接受。最重要的是,没有一个扫描仪作业失败。在重新启动之前,套接字超时作业的失败率约为60%

    通过执行以下操作,我能够大大缩短服务器的响应时间:

  • 重新启动(每天计划)
  • 安排一个周期性轮询服务器的进程(只需一个shell脚本执行curl并每隔几分钟记录一次响应时间)

  • 仍然存在一些差异,我需要对此进行分析,但在重新启动sq后,平均延迟显著下降(平均响应时间约为0.6秒,而不是10秒以上),在我看来仍然有点慢,但由于sq仅在内部使用,我可以接受。最重要的是,没有一个扫描仪作业失败。重新启动之前,套接字超时作业的失败率约为60%

    也许您可以添加要排除的文件以缩小扫描范围

    尝试排除不需要的文件。

    我还发现,如果禁用声纳scm,扫描速度会快得多

    项目->项目设置->SCM->解除SCM传感器的锁定(已选中)


    sonar.scm.disabled=true

    也许您可以添加要排除的文件以缩小扫描范围

    尝试排除不需要的文件。

    我还发现,如果禁用声纳scm,扫描速度会快得多

    项目->项目设置->SCM->解除SCM传感器的锁定(已选中)


    sonar.scm.disabled=true

    顺便说一句,因为我已经引起SonarSource团队的注意,如果我能在自己的tomcat中运行sq就太好了。。。我几乎可以将此视为改进响应时间的替代方案。我知道这种运行sq的方式不再受支持,但我认为放弃上述支持是一个糟糕的决定。如果我正确理解,web服务器很慢,扫描程序初始化和发送报告也很慢?在本例中,为了帮助调查服务器问题,可以启用跟踪日志来获取SQL和Elasticsearch请求的执行时间(请参阅conf/sonar.properties中的sonar.log.level)。作为补充,您还可以记录HTTP请求的响应时间(请参阅sonar.web.accessLogs.pattern中的%D)。还可以检查身份验证堆栈是否连接到外部系统(LDAP、OpenId等)。检查系统信息(管理>系统>系统信息)也会有所帮助。我认为与sq的所有通信都是“web”那你为什么要限定它呢?对于扫描器,有时它们会完成,但通常会因套接字超时而失败。。。我猜是因为响应时间太慢了。。。这是有意义的还是其他不清楚的东西?我启用了额外的日志记录,所以我们明天会看到发生什么(我运行了一晚上的分析),顺便说一下,因为我已经得到SonarSource团队的某人的注意,如果我可以在我自己的tomcat中运行sq,那将是非常棒的。。。我几乎可以将此视为改进响应时间的替代方案。我知道这种运行sq的方式不再受支持,但我认为放弃上述支持是一个糟糕的决定。如果我正确理解,web服务器很慢,扫描程序初始化和发送报告也很慢?在本例中,为了帮助调查服务器问题,可以启用跟踪日志来获取SQL和Elasticsearch请求的执行时间(请参阅conf/sonar.properties中的sonar.log.level)。作为补充,您还可以记录HTTP请求的响应时间(请参阅sonar.web.accessLogs.pattern中的%D)。还可以检查身份验证堆栈是否连接到外部系统(LDAP、OpenId等)。检查系统信息(管理>系统>系统信息)也会有所帮助。我认为与sq的所有通信都是“web”那你为什么要限定它呢?对于扫描器,有时它们会完成,但通常会因套接字超时而失败。。。我猜是因为响应时间太慢了。。。这是有意义的还是其他不清楚的东西?我启用了额外的日志记录,所以我们将看到明天会发生什么(我通宵运行分析)