2011-09-16 26 views
5

MySQLデータベース(Amazon RDSインスタンス)で「デッドロック」と「ロックタイムアウト」の問題が増えています。数日前までデータベースはうまく機能していました。クエリを実行するサーバーコードの変更は1週間以上行われませんでした。私は例外が何であるかは知っていますが、問題の原因となっている特定のクエリ/ステートメントをデバッグして見つける最も良い方法はありません。Amazon RDSのMySQLデッドロックのデバッグ

セットアップの情報:

  • のMySQLアマゾンRDSインスタンス(小)することUTF-8
  • サーバーに変更された文字エンコーディングを除き、RDSプロファイル/ MySQLの設定、中
  • すべてのデフォルトクエリはTomcat Javaサーバーであり、Hibernateを使用しています
  • 例外の情報は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

を開始するのに役立ちます

SHOW FULL PROCESSLIST 

MYSQL Reference

希望をuをしましたいくつかの回答を見つけることができますか? – gnuyoga

+0

SHOW ENGINE INNODB STATUSコマンドの出力は何ですか? – 90hex

答えて

1

私はそれは難しい問題を見つけるために知っているが、あなたが開始することができます使用してデッドロックの原因となるクエリを探します。これは