【问题标题】:Oracle UCP high CPU usage on Java 1.7 + TC ServerJava 1.7 + TC 服务器上的 Oracle UCP 高 CPU 使用率
【发布时间】:2013-09-20 14:04:52
【问题描述】:

前段时间,我们将我们的一个 Web 应用程序从 Resin 和 Java 6 迁移到了 VMware vFabric tc Server 和 Java 7。这还包括将所有 JNDI 数据源从 Resin 实施迁移到 Oracle UCP。当我在本地运行应用程序时,我注意到我的 CPU 使用率非常高。将 VisualVM 附加到 tc 后,我发现正在消耗我的 CPU 的是 Oracle UCP:

我的本​​地配置是:Windows 7x64、Java 1.7.0_25x32 (JDK) 和 vFabric tc Server 标准 2.7.0.RELEASE。以下是我在context.xml 中配置数据源的方法:

  <WatchedResource>WEB-INF/web.xml</WatchedResource>

  <Resource name="jdbc/oracle"
            auth="Container"
            factory="oracle.ucp.jdbc.PoolDataSourceImpl"
            type="oracle.ucp.jdbc.PoolDataSourceImpl"
            connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
            url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=h1.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=h2.com)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SERVICENAME)))"
            user="user"
            password="password"
            minPoolSize="0"
            initialPoolSize="1"
            maxPoolSize="50"
            ONSConfiguration="nodes=h1:6200,h2:6200"
            connectionWaitTimeout="60"
            inactiveConnectionTimeout="900"
            abandonedConnectionTimeout="900"
            fastConnectionFailoverEnabled="false"
            validateConnectionOnBorrow="true"
            connectionPoolName="NAME"/>

有趣的是,在 prod 盒子上一切正常。我不知道确切的配置,但我们在它们和 Hotspot 7 上安装了 Fedora 或 CentOS。

我尝试了标准的 Tomcat 数据源实现,但在我的情况下效果不佳:我的本地计算机和数据库集群之间的连接非常不稳定,因此自动恢复和负载平衡对我来说至关重要。另外,我希望我的本地配置类似于 prod,因此不希望使用另一个池。

也许有人遇到过同样的问题并且知道解决方案?也许错过了一些 JVM arg 或本机库?

【问题讨论】:

  • 用反编译器挖掘UCP源代码后,我们发现了一个潜在的问题,导致无限循环。该死的甲骨文!

标签: oracle tomcat datasource ucp tcserver


【解决方案1】:

请考虑减少以下参数的超时秒数,因为它可能是促成因素之一

1)inactiveConnectionTimeout

2)abandonedConnectionTimeout

在空闲连接(借用和可用)上花费更多时间将需要更多内存来保存连接。

在使用 Web 应用程序时,由于内存使用率高,这可能会间接导致使用更多 CPU。

更多信息请点击下方链接

Optimizing Universal Connection Pool Behavior

CPU usage VS RAM

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2014-07-13
    • 2020-03-31
    • 1970-01-01
    相关资源
    最近更新 更多