Oracle 的 Sonarqube Web UI 配置文件管理速度很慢

2023-11-29

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

当许多配置文件在此架构(虚拟化 Linux + Oracle)上使用时,我将不胜感激有关此功能的响应时间的一些反馈。

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


分配 :

  • SonarQube 3.7.3 带有 39 个插件(jar 文件位于 extensions/plugins/ 中)
  • 9 种语言配置文件:C#/C++/Flex/Java/JavaScript/PHP/Python/Web/XML(问题随着配置文件数量的增加而增加)
  • 全新安装(未分析项目,默认配置文件)

Scenario :

  • Calling profiles页面(如尼莫个人资料页面),缓存填满后报告第二次调用,平台上只有 1 个用户
  • 在 logback.xml 的 INFO 中记录“rails”

虚拟机虚拟化 :

  • Linux SLES 11(补丁 2)x86 64b
  • DELL R815 / 16 核 AMD(SonarQube VM 保证:1 核和 8 Go)

VM环境测试 :

  • 8093ms(视图:7219,DB:864):VM 上的服务器/VM 上的 Oracle
  • 2206ms(视图:1851,DB:346):服务器和 H2 嵌入在同一虚拟机上

=> H2 的响应时间可以接受(VM 上的 CPU 频率不是很高),因此没有 CPU/IO/RAM 饱和。但对Oracle的View部分有些怀疑.

个人测试 :

  • 2054ms(视图:542,DB:1506):笔记本电脑 Dell Vostro 3300 上的服务器/NAS Qnap TS-219 上的 MySql
  • 808 毫秒(视图:528,数据库:273):笔记本电脑 Dell Vostro 3300 上的服务器和 HsqlDB

=> 远程数据库对视图部分没有影响(在本例中使用 MySQL)

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

  • 13762ms(视图:10877,DB:2832):NAS Qnap TS-219 上的服务器和 H2 嵌入
  • 13622ms(视图:10581,DB:2997):NAS Qnap TS-219 上的服务器和 MySQL

=> Qnap TS-219 不足以支持 SonarQube(CPU 饱和;-))。


通过在 JMX 远程连接 JVisual 来获取一些线程转储,75% 具有此堆栈(其他等效,直到 Runtime Cache.getConstants From):

 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)

假设 :

  • 很多时候生成java异常(CPU成本不可忽略)? (或者异常编程是一个期望的过程)
  • 尤其是 Oracle 连接器? (或者用于生成请求的 Oracle 方言可以在许多配置文件时解释这些响应时间)

也许我看到了没有的问题...但是此页面上的 Oracle 响应时间(更普遍的是配置文件管理)可能有点奇怪。

预先感谢您的反馈或想法。


讨论已切换到 SonarQube 用户邮件列表:http://sonar.markmail.org/thread/gbmj5dwyrrysujfo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 的 Sonarqube Web UI 配置文件管理速度很慢 的相关文章

随机推荐

  • TinyMCE 在隐藏文本区域之前不会从文本区域获取内容

    我在页面上运行了一个 TinyMCE 实例 使我能够编辑现有帖子 我查询数据库并填充变量 content与存储的文本 然后我有以下 HTML
  • 仅使用 xamarin Andriod 连接到 mySQL 数据库时出现问题,但可在 iOS 和 UWP 中使用

    我正在从 Xamarin 跨平台应用程序直接连接到 mySQL 服务器 仅用于学习目的 该连接在 iOS 和 UWP 中都运行良好 但在 Android 中会抛出此行错误 等待 conn OpenAsync 这是完整的错误 System T
  • LLVM JIT编译的程序找不到外部函数

    我的程序 JIT 编译 LLVM IR 模块并调用函数foo如果其中定义在运行时失败foo使用外部定义的函数 LLVM ERROR Program used external function glutInit which could no
  • 为什么 numpy.vectorize 在使用不确定性时会发出有关无效值的警告?

    使用 Python 3 10 numpy 1 23 5 和不确定性3 1 7 在 Linux 上 特别是在 Fedora 37 上使用 conda forge 的软件包 代码如下 import numpy as np from uncert
  • Qt - 如何在多个平台上保存配置文件

    我正在编写一个 Qt 应用程序 需要将一些设置保存到用户的配置目录中 我想出了以下代码来获取此文件夹 ifdef Q WS WIN path QDir homePath Application Data Timely else path Q
  • excel vba选择表格范围

    我想选择一个表 它将有固定的列 其中 4 个 但可以有任意数量的行 也可以有空行 我将如何选择表格范围 例如 当前选择是B2 to E5 我怎样才能在VBA中以编程方式获得这个 以下是如何设置对表的引用 你应该观看 Excel VBA 简介
  • 基于通配符替换字符串的 SQL 查询

    我想在我的 WP 数据库上运行此类查询以删除 id more 的所有跨度实例 UPDATE wp posts SET post content REPLACE post content p span span p 但在我的示例中 more
  • 如何使用适配器在按钮单击时添加 ListView 项目

    如何获取在 EditText 中输入的数据并通过单击该窗口中的 提交 将其添加到以前的活动列表视图项目中 我需要做的是 创建 EditText 和提交按钮 在同一个 Activity 中创建列表视图 通过单击提交按钮 它应该在列表视图中显示
  • Cobertura 显示正确的覆盖范围,但在声纳中许多文件显示 0% 覆盖范围

    I have write multiple JUnit test classes for my project The code covergae is 80 when I see it in Eclipse using cobertura
  • 执行 sqlalchemy 存在查询

    我无法理解如何执行查询来检查 sqlalchemy 中是否已存在匹配的记录 我可以在网上找到的大多数示例似乎都引用了我没有的 会话 和 查询 对象 这是一个简短的完整程序 说明了我的问题 1 使用 person 表设置内存中的sqlite数
  • 将“Dialog”小部件的宽度设置为 Vaadin 14 中页面的百分比

    在瓦丁 14 中 Dialog当指定宽度和高度时 小部件可以正确打开px CSS 虚拟 像素 Dialog dialog new Dialog dialog setCloseOnEsc true dialog setCloseOnOutsi
  • 在 Yii2 中禁用单个操作的 CSRF 验证

    有没有办法对控制器的某些操作禁用 CSRF 验证 同时对其他操作保持启用状态 就我而言 我有几个可配置的 Action 类 它们旨在注入到控制器中 我无法将 csrf 验证令牌传递到 AJAX 请求中 因为我正在使用的东西是前端的外部 不是
  • NetBeans 7.0 的 Java UML 自动生成 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我需要为我的项目制作 UM
  • Git:仅在将外部分支合并到主分支时防止快进合并

    为了方便查看功能分支何时合并到 master 可以使用 Git 的 no ff将其功能分支合并到主分支时的选项 无需键入即可完成此操作的一种方法 no ff是完全禁用快进合并到 master 中 git config branch mast
  • HTML5画布颜料混合颜色工具

    你好 我需要创建混合颜色工具 我尝试从画布中获取颜色像素getImageData并与我选择的颜色混合并获得平均颜色 我可以轻松获得它 r1 red channel from getImageData g1 green channel fro
  • 从 WP_Query 中排除 WooCommerce 产品类别

    我将以下参数定义为查询的一部分 args apply filters woocommerce related products args array post type gt product author gt artist post st
  • 使用 AutoMapper 的集成测试无法初始化配置

    框架和包 NETCoreApp 1 1 Xunit 2 2 0 AutoMapper 6 0 2 Microsoft AspNetCore TestHost 1 1 1 Microsoft NET Test Sdk 15 0 0 集成测试
  • Android:无法播放mp4视频

    我正在尝试玩mp4 视频流使用本机从服务器视频查看 遗憾的是我不断收到 无法播放视频 error 奇怪的是 同一个视频在 Froyo 上播放得很好 但在 HoneyComb 上却无法播放 我用 MX Video Player 在 HC 上
  • Java邮件性能

    我一直在使用 javamail 从 IMAP 服务器 当前是 GMail 检索邮件 Javamail 非常快地从服务器检索特定文件夹中的消息列表 仅 ID 但当我实际获取消息 仅信封 甚至不包含内容 时 每条消息大约需要 1 到 2 秒 快
  • Oracle 的 Sonarqube Web UI 配置文件管理速度很慢

    在虚拟化环境 生产 上安装带有 Oracle 的 SonarQube 与具有相同发行版的其他安装相比 配置文件管理非常慢 当许多配置文件在此架构 虚拟化 Linux Oracle 上使用时 我将不胜感激有关此功能的响应时间的一些反馈 下面的