Otrzymuję coraz więcej problemów "Deadlock" i "Lock timeout" w mojej bazie danych MySQL (instancja Amazon RDS). Baza danych działała bardzo dobrze, aż kilka dni temu. Żadne zmiany w kodzie serwera (który wykonuje zapytania) nie trwały dłużej niż tydzień. Wiem, jakie są wyjątki, ale nie mam pojęcia, jak najlepiej debugować i znaleźć konkretne zapytania/stwierdzenia, które powodują problemy.Debugowanie zakleszczeń MySQL na Amazon RDS
informacji o konfiguracji:
- instancji MySQL Amazon RDS (mały)
- Wszystko domyślny w profilu RDS/Ustawienia MySQL wyjątkiem kodowania znaków, który zostaje zmieniony na UTF-8
- Server czyniąc zapytania jest serwer Tomcat Java Hibernate
- Informacje na temat wyjątków są odczytywane z dziennika serwera Tomcat
- pytania/min pomiędzy 50 - 5000
Moje najlepsze przypuszczenie, że coś jest w ustawieniach (Hibernacja lub MySQL), które powoduje ten problem. Serwer będzie działał dobrze, a następnie opóźnienie przejdzie przez dach powodując różnego rodzaju negatywne zachowania. Kiedy tak się stanie, wykorzystanie procesora przez instancję będzie bliskie 100%.
Ustawienia hibernacji są:
<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>
Każdy pomysł gdzie zacząć debugowanie czy coś w ustawieniach może być przyczyną tego problemu byłoby mile widziane.
nie u udaje się znaleźć odpowiedzi? – gnuyoga
jaki jest wynik polecenia SHOW ENGINE INNODB STATUS? – 90hex