2011-09-16 126 views
5

我在我的MySQL数据库(Amazon RDS实例)上遇到越来越多的“死锁”和“锁定超时”问题。直到几天前,数据库运行良好。服务器代码(执行查询)没有更改超过一周。我知道什么是例外情况,但对于调试和查找导致问题的特定查询/语句的最佳方式,我不知所措。在Amazon RDS上调试MySQL死锁

信息上设置:

  • 的MySQL亚马逊RDS实例(小)
  • 一切默认RDS资料/除字符编码,这是改为UTF-8
  • 服务器使得MySQL的设置查询是与Hibernate的Tomcat Java服务器
  • 上的异常信息从Tomcat服务器日志阅读之间50
  • 查询/最小值 - 5000

我最好的猜测是在设置(Hibernate或MySQL)中存在导致此问题的东西。服务器将运行良好,然后延迟会通过屋顶引起各种负面行为。发生这种情况时,该实例的CPU利用率将接近100%。

的休眠设置为:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
    <property name="driverClass"><value>com.mysql.jdbc.Driver</value></property> 
    <property name="jdbcUrl"><value>XXXX</value></property> 
    <property name="user"><value>XXXX</value></property> 
    <property name="password"><value>XXXX</value></property> 
    <property name="initialPoolSize"><value>3</value></property> 
    <property name="minPoolSize"><value>3</value></property> 
    <property name="maxPoolSize"><value>50</value></property> 
    <property name="idleConnectionTestPeriod"><value>200</value></property> 
    <property name="acquireIncrement"><value>1</value></property> 
    <property name="maxStatements"><value>0</value></property> 
    <property name="numHelperThreads"><value>6</value></property> 
</bean> 

任何想法从哪里开始,如果事情的设置可能会造成这个问题的调试,将不胜感激。

+0

难道ü设法找到一些答案? – gnuyoga

+0

命令SHOW ENGINE INNODB STATUS的输出是什么? – 90hex

回答

1

我知道这很难找到这个问题,但你可以开始找到利用导致死锁查询:

SHOW FULL PROCESSLIST 

MYSQL Reference

希望这将有助于你开始