DB使用过多的CPU - 95%

时间:2012-11-06 12:09:56

标签: java database hibernate spring-mvc db2

我在我的应用程序中使用Spring MVC + hibernate。应用程序服务器是IBM WebSphere v7。在重新启动和重新启动应用程序后, Db2syscs 进程会使CPU使用率达到99%并消耗大约 1,034,352K 的内存使用量。这大概<10> 15分钟。我尝试增加分配给DB2的堆大小,这没有任何区别。

修改

这些是我在spring配置文件中的hibernate属性。添加缓存,池属性是否会产生影响?

<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.datasource">jdbc/logincfg</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory
</prop>
<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup
</prop>

2 个答案:

答案 0 :(得分:0)

如果您在Linux上运行,请尝试使用db2top之类的监视器来确定哪个查询正在搅动您的CPU。

 db2top -d <your database name>   

答案 1 :(得分:0)

WebSphere 本身处理其数据源的所有池和缓存级别。可以通过 WebSphere管理控制台执行所有与JDBC相关的配置。尝试使用connection pool datasource instead of XA datasource。另请检查heuristic hazard in server configuration。这些将减少CPU的负载。