Ik heb op één van mijn productie MySQL servers erg last van het volgende probleem en ben benieuwd of er tweakers zijn die mij kunnen helpen met een mogelijke oplossing.
Op de server in kwestie blijven sommige threads random hangen op status end. Wanneer dit gebeurd zijn de threads altijd bezig met een update of een delete query. Op het moment dat er een thread blijft steken op deze status krijgen alle threads die later nog queries proberen uit te voeren de status locked. Dit gebeurd ongeacht op welke database of tabel de overige threads een query proberen uit te voeren.
Het gevolg van dit probleem is dat binnen korte tijd alle beschikbare connecties verbruikt zijn en nieuwe connecties niet meer worden geaccepteerd tot het moment dat de query die op end-status staat verdwijnt. Soms kan dit wel langer dan 10 minuten duren. De load en I/O activiteit op de server tijdens het hangen van de thread zijn minimaal.
De database en/of tabellen waarop de hangende thread zijn bewerkingen uitvoert is puur willekeurig. De enige overeenkomst is dat het alle MyISAM tabellen zijn en dat op het moment dat het probleem zich voordoet deze tabellen vrij heftig worden bewerkt (circat 2 updates / inserts / deletes per seconde en dat een aantal uur achter elkaar). De tabellen zijn relatief bescheiden in afmeting, tussen de 2 en 20 MB.
Ter ondersteuning even wat gegevens over de server in kwestie. De server draait CentOS 5.4 en MySQL 5.0.77-log. De processor is een AMD Opteron 2378, de harde schijven zijn een RAID 1+0 array van Corsair X32 32GB SSDs.
Ik denk dat het laatste mogelijk te maken heeft met het probleem. Ik zou echter niet weten hoe ik dit precies zou kunnen vast stellen. Behalve dit probleem draait deze al geruime tijd snel en stabiel. De schijven lijken verder niet voor problemen te zorgen in deze configuratie.
Ik heb zo ongeveer overal gezocht maar niets anders dan een paar bug reports op mysql.com gevonden. In de documentatie van MySQL is de status ´end´ heel vluchtig gedocumenteerd. Ik ben op dit moment bezig de broncode van de versie in kwestie door te nemen om te kijken of dit me misschien op ideeën brengt.
Ik hoop dat er een hier iemand is die een idee heeft wat een mogelijke oorzaak is, want mijn inspiratie is zo ongeveer wel op
. Alvast bedankt voor de moeite!
Op de server in kwestie blijven sommige threads random hangen op status end. Wanneer dit gebeurd zijn de threads altijd bezig met een update of een delete query. Op het moment dat er een thread blijft steken op deze status krijgen alle threads die later nog queries proberen uit te voeren de status locked. Dit gebeurd ongeacht op welke database of tabel de overige threads een query proberen uit te voeren.
Het gevolg van dit probleem is dat binnen korte tijd alle beschikbare connecties verbruikt zijn en nieuwe connecties niet meer worden geaccepteerd tot het moment dat de query die op end-status staat verdwijnt. Soms kan dit wel langer dan 10 minuten duren. De load en I/O activiteit op de server tijdens het hangen van de thread zijn minimaal.
De database en/of tabellen waarop de hangende thread zijn bewerkingen uitvoert is puur willekeurig. De enige overeenkomst is dat het alle MyISAM tabellen zijn en dat op het moment dat het probleem zich voordoet deze tabellen vrij heftig worden bewerkt (circat 2 updates / inserts / deletes per seconde en dat een aantal uur achter elkaar). De tabellen zijn relatief bescheiden in afmeting, tussen de 2 en 20 MB.
Ter ondersteuning even wat gegevens over de server in kwestie. De server draait CentOS 5.4 en MySQL 5.0.77-log. De processor is een AMD Opteron 2378, de harde schijven zijn een RAID 1+0 array van Corsair X32 32GB SSDs.
Ik denk dat het laatste mogelijk te maken heeft met het probleem. Ik zou echter niet weten hoe ik dit precies zou kunnen vast stellen. Behalve dit probleem draait deze al geruime tijd snel en stabiel. De schijven lijken verder niet voor problemen te zorgen in deze configuratie.
Ik heb zo ongeveer overal gezocht maar niets anders dan een paar bug reports op mysql.com gevonden. In de documentatie van MySQL is de status ´end´ heel vluchtig gedocumenteerd. Ik ben op dit moment bezig de broncode van de versie in kwestie door te nemen om te kijken of dit me misschien op ideeën brengt.
Ik hoop dat er een hier iemand is die een idee heeft wat een mogelijke oorzaak is, want mijn inspiratie is zo ongeveer wel op
[ Voor 2% gewijzigd door G F0rce 1 op 30-08-2010 16:03 . Reden: typo's + extra informatie ]
I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin