Installation Sonarqube web UI配置文件管理在Oracle中速度较慢

Installation Sonarqube web UI配置文件管理在Oracle中速度较慢,installation,sonarqube,Installation,Sonarqube,在虚拟化环境(生产环境)上使用Oracle安装SonarQube时,配置文件管理与使用相同发行版的其他安装相比非常缓慢 当许多配置文件在这个体系结构(虚拟化Linux+Oracle)上使用时,我将非常感谢关于这个功能的响应时间的一些反馈 下面的测试和快速分析提供了一些信息/案例再现 分布: SonarQube 3.7.3,带有39个插件(扩展名/plugins/中的jar文件) 9种语言配置文件:C#/C++/Flex/Java/JavaScript/PHP/Python/Web/XML(问

在虚拟化环境(生产环境)上使用Oracle安装SonarQube时,配置文件管理与使用相同发行版的其他安装相比非常缓慢

当许多配置文件在这个体系结构(虚拟化Linux+Oracle)上使用时,我将非常感谢关于这个功能的响应时间的一些反馈

下面的测试和快速分析提供了一些信息/案例再现


分布

  • SonarQube 3.7.3,带有39个插件(扩展名/plugins/中的jar文件)
  • 9种语言配置文件:C#/C++/Flex/Java/JavaScript/PHP/Python/Web/XML(问题随着配置文件数量的增加而增加)
  • 清洁安装(未分析任何项目,默认情况下为配置文件)
场景

  • 调用配置文件页面(as),缓存填充后报告的第二个调用,平台上只有1个用户
  • 在logback.xml中的信息中记录“rails”
虚拟机虚拟化

  • Linux SLES 11(修补程序2)x86 64b
  • 戴尔R815/16核AMD(SonarQube虚拟机保证:1核和8核)
虚拟机环境测试

  • 8093ms(视图:7219,数据库:864):虚拟机上的服务器/虚拟机上的Oracle
  • 2206ms(视图:1851,数据库:346):服务器和H2嵌入在同一个虚拟机上
=>响应时间在H2条件下可接受(VM上的CPU频率不是很高),因此没有CPU/IO/RAM饱和但Oracle对View part有些怀疑

个人测试

  • 2054ms(视图:542,数据库:1506):笔记本电脑上的服务器NAS Qnap TS-219上的Dell Vostro 3300/MySql
  • 808ms(视图:528,数据库:273):笔记本电脑Dell Vostro 3300上的服务器和HsqlDB
=>远程数据库对视图部分没有影响(本例中使用MySQL)

为了乐趣和信息,SonarQube在Qnap TS-219(CPU armv5tel!!)上使用Java服务包装器Linux CPU armel v3.5.22工作(启动和配置文件咨询)

  • 13762ms(视图:10877,数据库:2832):服务器和H2嵌入NAS Qnap TS-219
  • 13622ms(视图:10581,数据库:2997):NAS Qnap TS-219上的服务器和MySQL
=>Qnap TS-219对于SonarQube(CPU饱和;-)是不够的


通过在JMX remote中连接JVisual以获取一些线程转储,75%的用户拥有此堆栈(其他堆栈在RuntimeCache.getConstantFrom之前是等效的):

java.lang.Thread.State:可运行
位于java.lang.Throwable.GetStackTraceeElement(本机方法)
位于java.lang.Throwable.getOurStackTrace(Throwable.java:591)
-锁定(java.lang.Exception)
位于java.lang.Throwable.getStackTrace(Throwable.java:582)
位于java.lang.Thread.getStackTrace(Thread.java:1479)
[...]
在org.jruby.RubyException.prepareBacktrace(RubyException.java:160)上
[...]
位于org.jruby.exceptions.RaiseException。(RaiseException.java:141)
[...]
在org.jruby.Ruby.newNameError(Ruby.java:3243)
org.jruby.RubyModule.const_缺失(RubyModule.java:2647)
在org.jruby.RubyModule$i$0$const_missing.call(RubyModule$i$1$0$const_missing.gen:65535)
[...]
在rubyjit.ActiveSupport::Dependencies::ClassConstMissing#const_missing─1F94EEFD25B9D6ED4A2256A01713AC5D8AAE19F9.─文件─(/[sonar dir]/sonar-3.7.3/war/sonar server/WEB-INF/gems/ActiveSupport-2.3.15/lib/active─support/Dependencies.rb:118)
在rubyjit.ActiveSupport::Dependencies::ClassConstMissing#const_missing(1F94EEFD25B9D6ED4A2256A01713AC5D8AAE19F9.(文件)(/[sonar dir]/sonar-3.7.3/war/sonar server/WEB-INF/gems/gems/ActiveSupport-2.3.15/lib/active_support/Dependencies.rb)
[...]
位于org.jruby.RubyModule.fastGetConstantFromConstantMissing(RubyModule.java:2974)
位于org.jruby.ast.executable.RuntimeCache.getConstantFrom(RuntimeCache.java:418)
位于org.jruby.ast.executable.AbstractScript.getConstantFrom0(AbstractScript.java:292)
在rubyjit.ArJdbc::Oracle#sql#literal?35b81fe146bcea62ed756be2d767870adf57ac.rescue_u1$RUBY$SYNTHETIC_uufile_uuu(/[sonar dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/ArJdbc/Oracle/adapter.rb)
在rubyjit.ArJdbc::Oracle#sql(字面意思)35b81fe146bcea62ed756be2d767870adf57ac.(文件)(/[sonar dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/ArJdbc/Oracle/adapter.rb:162)
在rubyjit.ArJdbc::Oracle#sql#literal?"35B81FE146BCEA62ED756B5BE2D767870ADF57AC."文件"(/[sonar dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/ArJdbc/Oracle/adapter.rb)
[.......]
在org.jruby.evaluator.astinterpeter.exploration\u方法中(astinterpeter.java:74)
[...]
位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
运行(Thread.java:662)

假设

  • 多次生成java异常(CPU成本不可忽略)?(或通过异常编程是一个理想的过程)
  • 尤其是Oracle连接器?(或者用于生成请求的Oracle方言可以在许多配置文件出现时解释这些响应)
也许我看到的问题不是。。。但是Oracle在这个页面上的响应时间(以及更普遍的配置文件管理)可能有点奇怪


提前感谢您的反馈或想法。

讨论已切换到SonarQube用户邮件列表:

讨论已切换到SonarQube用户邮件列表:

继续将DB切换到Oracle XE中的“个人测试”部分(笔记本电脑Dell Vostro 3300);HsqlDB:808ms(视图:528,DB:273)/Oracle-XE:4169ms(视图:3700,DB:462)=>配置文件页面在Oracle中似乎简单而缓慢…继续“个人测试”部分(笔记本电脑Dell-Vostro 3300)将DB切换到Oracle-XE;HsqlDB:808ms(视图:528,DB:273)/Oracle XE:4169ms(视图:3700,DB:462)=>配置文件页面在Oracle中似乎简单而缓慢…在版本4.2中修复,变通方法
 java.lang.Thread.State: RUNNABLE
    at java.lang.Throwable.getStackTraceElement(Native Method)
    at java.lang.Throwable.getOurStackTrace(Throwable.java:591)
    - locked <5512520e> (a java.lang.Exception)
    at java.lang.Throwable.getStackTrace(Throwable.java:582)
    at java.lang.Thread.getStackTrace(Thread.java:1479)
    [...]
    at org.jruby.RubyException.prepareBacktrace(RubyException.java:160)
    [...]
    at org.jruby.exceptions.RaiseException.<init>(RaiseException.java:141)
    [...]
    at org.jruby.Ruby.newNameError(Ruby.java:3243)
    at org.jruby.RubyModule.const_missing(RubyModule.java:2647)
    at org.jruby.RubyModule$i$1$0$const_missing.call(RubyModule$i$1$0$const_missing.gen:65535)
    [...]
    at rubyjit.ActiveSupport::Dependencies::ClassConstMissing#const_missing_1F94EEFD25B9D6ED4A2256A01713AC5D8AAE19F9.__file__(/[sonar-dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/dependencies.rb:118)
    at rubyjit.ActiveSupport::Dependencies::ClassConstMissing#const_missing_1F94EEFD25B9D6ED4A2256A01713AC5D8AAE19F9.__file__(/[sonar-dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/dependencies.rb)
    [...]
    at org.jruby.RubyModule.fastGetConstantFromConstMissing(RubyModule.java:2974)
    at org.jruby.ast.executable.RuntimeCache.getConstantFrom(RuntimeCache.java:418)
    at org.jruby.ast.executable.AbstractScript.getConstantFrom0(AbstractScript.java:292)
    at rubyjit.ArJdbc::Oracle#sql_literal?_35B81FE146BCEA62ED756B5BE2D767870ADF57AC.rescue_1$RUBY$SYNTHETIC__file__(/[sonar-dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/oracle/adapter.rb)
    at rubyjit.ArJdbc::Oracle#sql_literal?_35B81FE146BCEA62ED756B5BE2D767870ADF57AC.__file__(/[sonar-dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/oracle/adapter.rb:162)
    at rubyjit.ArJdbc::Oracle#sql_literal?_35B81FE146BCEA62ED756B5BE2D767870ADF57AC.__file__(/[sonar-dir]/sonar-3.7.3/war/sonar-server/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/oracle/adapter.rb)
    [.......]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
    [...]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:662)