Mi az a MySQL Governor, és miért lassulnak le az adatbázis-lekérdezéseim?

Megosztott tárhelyen a tárhelyfiókok közös adatbázis-szerveren (MySQL vagy MariaDB) osztoznak. Ha egy fiók nagyon sok vagy nagyon nehéz lekérdezést futtat, az a szerveren lévő összes weboldal adatbázisát lelassíthatja. Ezt akadályozza meg a CloudLinux MySQL Governor nevű komponense.

Hogyan működik?

A MySQL Governor valós időben figyeli, hogy az egyes fiókok lekérdezései mennyi processzoridőt és lemezműveletet használnak. Amíg a fiók a megengedett kereten belül marad, semmi nem történik.

Ha egy fiók túllépi a keretet, a Governor a lekérdezéseit a fiók saját erőforrás-keretében (LVE) futtatja tovább. Ugyanabban a keretben fut a weboldal PHP-kódja is, így a fiók adatbázis- és PHP-folyamatai együtt osztoznak a csomagjához tartozó erőforrás-limiteken. Ha a terhelés csökken, a korlátozás rövid idő után magától megszűnik.

A szerver beállításától függően a Governor a nagyon hosszan (például több tíz másodpercig) futó SELECT lekérdezéseket meg is szakíthatja. Más típusú lekérdezéseket (írást, módosítást) nem szakít meg.

Mit tapasztal ilyenkor?

  • Az adatbázist használó oldalak (például a WordPress oldalai vagy a webáruház terméklistái) lassabban töltődnek be.
  • A lassabb lekérdezések miatt a PHP-kérések tovább futnak, ezért gyakrabban telik be az egyidejű kapcsolatok száma, ami 508-as hibát is okozhat.
  • A cPanel Erőforrás-használat oldalának grafikonjain az adatbázis használata kék vonallal látszik, a Snapshot fülön pedig a limit elérésekor futó adatbázis-lekérdezések is megjelennek. Részletek: Mit jelentenek a hibaszámlálók (faults) az Erőforrás-használat oldalon?

A korlátozás nem büntetés, és nem érinti az adatok épségét: csak azt biztosítja, hogy egy fiók adatbázis-terhelése ne menjen a többi weboldal rovására.

Hogyan csökkentheti az adatbázis terhelését?

  • Gyorsítótárazás: az oldal-gyorsítótár a legtöbb látogatást adatbázis-lekérdezés nélkül szolgálja ki. Tippek: Hogyan gyorsítsam fel a WordPress oldalamat?
  • Az adatbázis karbantartása: a felesleges revíziók, lejárt átmeneti adatok (transient) és a spam-hozzászólások törlése, valamint a táblák optimalizálása. Részletes útmutató: Adatbázis-optimalizálás WordPresshez.
  • Indexek: saját fejlesztésű alkalmazásnál a gyakran szűrt és rendezett oszlopokra tegyen indexet. Egy hiányzó index miatt egy lekérdezés a teljes táblát végigolvassa.
  • Nehéz bővítmények: a statisztika-, napló- és keresőbővítmények gyakran minden oldalbetöltésnél írnak az adatbázisba. Ellenőrizze, melyikre van valóban szüksége.
  • Időzített feladatok: a nagy importálásokat, exportokat és jelentéseket futtassa forgalommentes időszakban, lásd: Hogyan számít bele a cron és az SSH az erőforrás-limitekbe?

Ha nem tudja, mely lekérdezések okozzák a terhelést, írjon ügyfélszolgálatunknak, és segítünk kideríteni.