Ugrás a tartalomra
HU

Kezdőlap / Esettanulmányok

Időnkénti 3 másodperces lassulás, bűnös bővítmény nélkül

Tünetek

Gyorsítótárból az oldalak kb. 0,15 mp alatt töltődtek be. Nélküle (kosár, pénztár, bejelentkezés, első látogatás a gyorsítótár ürítése után) 0,8 és 4 mp között ingadozott. Érzésre „a weboldal néha lusta”.

Környezet

WordPress WooCommerce-szel, oldalépítővel és nagyjából 40 aktív bővítménnyel, osztott tárhely LiteSpeeddel és annak gyorsítótárával.

Diagnózis

  1. Ismételt mérés. Több oldalt gyorsítótár nélkül töltöttünk be 75 másodpercenként néhány percen át. A lassulás nem a kezdőlaphoz kötődött: ugyanolyan gyakran érintett egy egyszerű szöveges oldalt is. A sorozatban a kérések nagyjából fele +3 mp-et kapott. A pontosan 3 mp többlet külső hívás időtúllépésének tűnt (licencszerver, API, betűtípusok).
  2. Ideiglenes diagnosztikai mu-plugin (jóváhagyással, személyes adatok nélkül). Naplózta a kérés fő szakaszaiig eltelt időt (muplugins_loaded, plugins_loaded, init, wp_loaded, template_redirect, shutdown) és minden külső HTTP hívást a pre_http_request és http_api_debug szűrőkkel.
  3. Az eredmény meglepő volt: a lassú kéréseknek (kb. 3,3 mp, nagyjából minden tizenötödik) semmilyen külső HTTP hívásuk nem volt. Minden szakasz egyenletesen lassult, leginkább az indulás a plugins_loaded-ig (1,3 mp 0,12 mp helyett). Egyetlen bővítmény sem lógott ki tehát.
  4. A mu-plugint és a naplóját a mérés után azonnal töröltük, és ellenőriztük, hogy a cím 404-et ad.
A lassú kérés minden szakaszban lassabb Nagyjából minden tizenötödik kérés 3 másodpercnél tovább tartott. A szakaszokra bontás megmutatta, hogy minden szakasz egyenletesen lassult le, és nem volt külső hívás. Ez a PHP hidegindítására utal, nem bővítményre. Válaszidő gyorsítótár nélkül 3,3 mp általában 0,8–1 mp Hol vész el az idő (a WordPress szakaszai) gyors lassú Minden szakasz ugyanannyival hosszabb, külső hívások nélkül → a PHP hidegindítása.
Nagyjából minden tizenötödik kérés 3 másodpercnél tovább tartott. A szakaszokra bontás megmutatta, hogy minden szakasz egyenletesen lassult le, és nem volt külső hívás. Ez a PHP hidegindítására utal, nem bővítményre.

Ok

A teljes kérés egyenletes lassulása külső hívások nélkül az osztott tárhelyen lévő hideg PHP folyamatnak felel meg. A kérés új folyamatot kap üres opcache-sel, amelynek újra be kell töltenie és le kell fordítania az összes bővítmény kódját. Sem a bővítmény, sem a weboldal nem tehet róla.

Mi fenyeget, ha nem foglalkozunk vele

Éppen azok az oldalak lassúak, amelyeken a pénz keletkezik: a kosár, a pénztár és a vásárlói fiók. Minden plusz másodperc várakozás növeli az elhagyott kosarak számát, és a Google a szerver lassú válaszát beszámítja a sebesség értékelésébe. A bűnös keresése a bővítmények között ráadásul időbe és pénzbe kerül a felesleges beavatkozások miatt.

Javítás

A weboldal oldalán nincs mit javítani. Azt javasoltuk:

  • kérdezzék meg a tárhely ügyfélszolgálatát a PHP folyamatok számáról, élettartamáról és az opcache méretéről,
  • hosszabb távon csökkentsék az aktív bővítmények számát, hogy a hidegindítás rövidebb ideig tartson.

Azokat a látogatókat, akiknek az oldalak gyorsítótárból töltődnek be, ez nem érinti.

Ellenőrzés

A fő eredmény a kizárás volt: nincs külső hívás és nincs egyedi bűnös bővítmény. Ezzel órákat spóroltunk meg a bővítmények vaktában történő kikapcsolásából.

Megelőzés és tanulságok

Mielőtt a bővítmények között keresné a bűnöst, mérje meg, a kérés mely szakaszai lassulnak. Ha mind egyformán, a probléma a WordPress alatt van (PHP, lemez, tárhely), nem benne.

Kapcsolódó szolgáltatások: Üzemzavarok és hibák Weboldal gyorsítás

Hasonló tüneteket tapasztal?

Írja meg a weboldal címét és a tüneteit. A diagnózis ingyenes és kötelezettségmentes. Általában egy munkanapon belül jelentkezem.

Tünetek leírása

vagy közvetlenül e-mailben: [email protected]