给别人用springmvc 做的一个网站,数据库用的proxool配的连接池,服务器用的tomcat。但是启动后cpu占用率一下就上去了,阿里云的服务器,单核,2G内存,windows 2012
我用visualvm查看运行情况
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>mysql</alias>
<driver-url>jdbc:mysql://127.0.0.1:3306/lingshang1?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<prototype-count>5</prototype-count>
<maximum-connection-count>50</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
</proxool>
</something-else-entirely>
这是由于proxool中有两个监控线程使用了while(true),这就占据了两个线程的CPU处理能力,以我的CPU,4核8线程,就相当于占据了一个核的运算量,即有一个CPU看起来是100%的使用率。
目前这个问题还无法避免。
我刚刚测试了proxool, c3p0, hikaricp这3个连接池,还是hikaricp的效率高,但稳定性尚不知,另外hikaricp需要jdk1.7及以上的环境,对老系统来说,还不能使用。
建议换用c3p0吧,效率比proxool要高出一些。从其它评测来看,稳定性也不如c3p0。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。