Installation Sonarqube web UI配置文件管理在Oracle中速度较慢
在虚拟化环境(生产环境)上使用Oracle安装SonarQube时,配置文件管理与使用相同发行版的其他安装相比非常缓慢 当许多配置文件在这个体系结构(虚拟化Linux+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(问
分布:
- 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嵌入在同一个虚拟机上
- 2054ms(视图:542,数据库:1506):笔记本电脑上的服务器NAS Qnap TS-219上的Dell Vostro 3300/MySql
- 808ms(视图:528,数据库:273):笔记本电脑Dell Vostro 3300上的服务器和HsqlDB
- 13762ms(视图:10877,数据库:2832):服务器和H2嵌入NAS Qnap TS-219
- 13622ms(视图:10581,数据库:2997):NAS Qnap TS-219上的服务器和MySQL
通过在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方言可以在许多配置文件出现时解释这些响应)
提前感谢您的反馈或想法。讨论已切换到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)