Rulăm o stivă LAMP care include MariaDB 10.5.15 pe Centos 7. Este un server dedicat cu 4 CPU-uri și 8 GB RAM.
Nu am avut nicio problemă până în ultimele săptămâni, când am observat că interogările lente durează 8-9 secunde în jurnalul de interogări lente.
Aceste interogări sunt împotriva mai multor baze de date INNODB, dar întotdeauna tabele mari (adică peste 10.000 de rânduri). Ele apar întotdeauna între orele 6:00 și 8:00.
Tabelele în cauză au indecși și aceleași interogări se execută în mai puțin de o secundă de obicei.
Am descoperit că, conectându-mă la server la 8 dimineața într-o duminică și interogând aceste tabele mari cu instrucțiuni simple select, ar dura 8-9 secunde pentru a se executa. Apoi, pentru restul zilei, chiar și după miezul nopții, orice interogări asupra acelui tabel ar fi rapid.
Orele 6:00 - 8:00 ar fi, de asemenea, momentul în care lucrurile „revin la viață” după o perioadă de inactivitate la primele ore.
Se pare că există un fel de cache care se răcește și trebuie să se încălzească, dar nu sunt sigur de ce a început să se întâmple brusc după ani de utilizare fără probleme. Nu există un proces uriaș care rulează pe server peste noapte despre care știu, iar serverul nu este sub încărcare atunci când se întâmplă acest lucru.
Monitorizăm sarcina procesorului 24/7 și verificăm periodic numărul de conexiuni la Apache și MariaDB care rămân moderat scăzut pe tot parcursul zilei. De obicei, există aproximativ 3 GB de memorie liberă, cu excepția bufferelor și a memoriei cache.
Editați | ×
În mod jenant, am descoperit că interogările lente în cauză de fapt nu foloseau indecși și făceau o scanare completă a tabelului. O interogare inițială poate dura câteva secunde, apoi pentru restul zilei, chiar și scanarea completă a tabelului durează mai puțin de o secundă. Presupun că acesta este un fel de cache de disc care se răcește peste noapte.
Deși s-ar putea să nu pară neobișnuit ca o scanare completă a unui tabel să aibă probleme de performanță, totuși pare ciudat că acest lucru a devenit dintr-o dată o problemă din senin.