Lassú PHP-oldalak elemzése a cPanel X-Ray App eszközével

cPanel 8 perc olvasás

Ha egy oldal lassan töltődik be, a legnehezebb kérdés általában az, hogy pontosan mi lassítja: egy bővítmény, egy rosszul megírt adatbázis-lekérdezés, egy külső szolgáltatás, amelyre az oldal vár, vagy egyszerűen elfogyott a tárhely erőforrása. A cPanel tárhelyen és a WordPress tárhelyen erre a kérdésre ad választ a CloudLinux X-Ray App eszköze.

Az X-Ray egy PHP-nyomkövető (profilozó): a megadott címre érkező kéréseknél rögzíti, hogy a PHP mennyi ideig dolgozott, és ebből mennyi jutott az egyes WordPress-bővítményekre, adatbázis-lekérdezésekre és PHP-függvényekre. Nem kell hozzá bővítményt telepítenie vagy a kódot módosítania, és nem csak WordPresshez használható: bármilyen PHP-alapú weboldalt (Joomla, Drupal, PrestaShop, Laravel, saját fejlesztés) nyomon tud követni. A bővítményenkénti bontás csak WordPress esetén érhető el.

Hol találja?

Jelentkezzen be a cPanelbe, és a Szoftver csoportban kattintson az X-Ray App ikonra.

cPanel Szoftver csoport: X-Ray App menüpont

A megnyíló PHP X-Ray oldalon látja a korábbi nyomkövetési feladatokat. Amíg nem indított egyet sem, a lista helyén a NEM TALÁLHATÓ FELADAT felirat áll.

Nyomkövetés indítása

  1. Kattintson a jobb felső Nyomkövetés indítása gombra.
  2. Az URL sorban a Domain kiválasztása listából válassza ki a domaint. A listában a cPanel-fiókjához tartozó domainek és aldomainek szerepelnek.
  3. Mellette a Maszk megadása mezőbe írja be, hogy a domainen belül melyik címeket kövesse a rendszer:
    • * a teljes webhely, minden cím;
    • / csak a kezdőlap;
    • termekek/* a /termekek/ alatti összes oldal;
    • *kosar* minden cím, amelyben szerepel a „kosar” szó (a ? utáni paramétereket is beleértve).

    A domain utáni perjelet a felület maga teszi a maszk elé. A ? pontosan egy karaktert helyettesít, a [ ] a zárójelben felsorolt karakterek egyikét (például oldal[1-3].php). A Hogyan használjuk a speciális karaktereket? hivatkozás példákkal mutatja be a lehetőségeket. Ugyanaz a maszk a http:// és a https:// címekre is érvényes.

  4. Alapértelmezés szerint az X-Ray a megadott címekre érkező első 20 kérést rögzíti (Rögzítés időtartama: Kérés, 20). Ha ez megfelel, kattintson a Futtatás gombra.

Az X-Ray Nyomkövetés indítása ablaka: domain, maszk, Speciális beállítások, Kliens IP és a rögzítés időtartama

Speciális beállítások

A Speciális beállítások jelölőnégyzet bekapcsolásával két további lehetőséget kap:

  • Kliens IP: csak az erről az IPv4-címről érkező kéréseket rögzíti a rendszer. Az alapérték *, azaz minden látogató kérését. Éles, forgalmas webhelyen érdemes a saját IP-címét megadni: így csak azok a kérések kerülnek a listába, amelyeket Ön indít a böngészőjéből, és nem rögzíti a látogatók címét és az általuk megnyitott URL-eket. A saját nyilvános IP-címét például egy „mi az IP-címem” kereséssel tudhatja meg. Ha a webhely Cloudflare vagy más proxy mögött van, a szerver más címet láthat; ha a megadott IP-címmel nem érkeznek kérések, hagyja a mezőt * értéken.
  • Rögzítés időtartama: a Kérés mellett megadhatja, hány kérést gyűjtsön a rendszer, az Időszak választásával pedig azt, hogy mennyi ideig (Napok, Órák, Percek). Az időszak legalább 1 perc, legfeljebb 2 nap lehet.

Egyszerre egy nyomkövetés futhat. Ha egy feladat még fut, és újat indítana, a felület a „Limit of running tasks is 1. You already have 1 running task” hibaüzenetet adja: várja meg, amíg a futó feladat befejeződik, vagy állítsa le.

A webhely megnyitása a nyomkövetés alatt

A nyomkövetés csak a valódi kéréseket rögzíti, ezért a feladat elindítása után nyissa meg a vizsgált oldalakat a böngészőben (vagy várja meg, amíg a látogatók megnyitják őket). Lassú kosár vagy pénztár esetén végezze el a lassú műveletet, lassú admin felületnél kattintson végig a lassú admin oldalakon.

Fontos: az X-Ray csak azt látja, amit a PHP futtat. Ha egy oldalt gyorsítótár szolgál ki (WordPress gyorsítótár-bővítmény, például WP Super Cache vagy W3 Total Cache, illetve a Cloudflare gyorsítótára), a PHP el sem indul, és a kérés nem jelenik meg. Ilyenkor kapcsolja ki ideiglenesen a gyorsítótárat, vagy jelentkezzen be a WordPress adminba (a legtöbb gyorsítótár a bejelentkezett felhasználóknak nem ad ki tárolt oldalt). A képeket, CSS- és JavaScript-fájlokat a webszerver közvetlenül szolgálja ki, ezért ezek sem szerepelnek a nyomkövetésben.

A nyomkövetési feladatok listája

A feladatok listájában a következőket látja:

  • URL: a domain és a maszk, amelyre a feladat vonatkozik.
  • Nyomkövetés állapota: Fut (alatta, hogy még hány kérés van hátra, például „5 times left”), Befejezve (összegyűlt a kért számú kérés, vagy letelt az időszak) vagy Leállítva.
  • Kliens IP: a megadott IP-cím, illetve *.
  • Összegyűjtött kérések: az eddig rögzített kérések száma.
  • Lejár: ennyi ideig érhetők még el a feladat adatai. A szerver a feladatokat a létrehozásuktól számított 30 napig tárolja, utána törli őket.
  • Műveletek: a szem ikon megnyitja a rögzített kéréseket, a négyzet ikon leállítja a futó feladatot (megerősítés: Igen, leállítani), a háromszög ikon folytatja a leállított feladatot, a kuka ikon pedig törli a feladatot és minden adatát (megerősítés: Igen, törölni).

X-Ray nyomkövetési feladatok: egy futó és egy befejezett feladat a Fut és Befejezve állapottal

A lista nem frissül magától: kattintson a Frissítés gombra, vagy kapcsolja be az Automatikus frissítés kapcsolót.

A rögzített kérések

A szem ikonra kattintva megnyílik a feladat Rögzített munkamenetek oldala. Felül három számot lát:

  • Összesen: az összes rögzített kérés.
  • Függőben: a már rögzített, de feldolgozás alatt álló kérések. Ezek néhány másodperc vagy perc múlva jelennek meg a táblázatban.
  • Lassú: az 1 másodpercnél tovább tartó kérések.

A táblázat alapértelmezés szerint csak a lassú kéréseket mutatja (ezt jelzi a Lassú szűrő a kereső alatt), a leglassabbal kezdve. Ha nem volt lassú kérés, a „Nem észlelhetők lassú kérések!” felirat jelenik meg; az Összes kérés megjelenítése gombbal ilyenkor is megnézheti a gyors kéréseket. A Kérések listával a szűrőt módosíthatja, az URL keresése mezővel egy adott címre kereshet.

X-Ray Rögzített munkamenetek: öt lassú kérés URL-lel, kliens IP-címmel, kezdési idővel és időtartammal

Egy kérés részletei

Egy sorra kattintva megnyílik a kérés részletes elemzése. A jobb felső nyilakkal a következő és az előző kérésre léphet, a Letöltés PDF-ként gombbal pedig jelentést készíthet, amelyet elküldhet a fejlesztőjének vagy ügyfélszolgálatunknak.

X-Ray kéréselemzés: Top 3 problémák, a bővítmények és az adatbázis-lekérdezések végrehajtási ideje

  • Top 3 problémák: a kérés három leglassabb eleme, típussal (Module/Plugin: bővítmény, Database query: adatbázis-lekérdezés, System function: PHP-függvény). Ha csak egy táblázatot néz meg, ezt nézze.
  • Legjobb szoftvermodulok/beépülő modulok végrehajtási idő szerint: a WordPress-bővítmények futási ideje. A WP Toolkittel kezelt webhelyeken a wp-toolkit is megjelenik: ez a WP Toolkit saját, a WordPress mellé telepített modulja, a futási ideje általában elhanyagolható.
  • Legjobb adatbázis-lekérdezések végrehajtási idő szerint: az SQL-lekérdezések, a fájllal és sorral, ahonnan indultak (Fájl), a bővítménnyel, amelyhez tartoznak (Szoftvermodul), és azzal, hogy ugyanaz a lekérdezés hányszor futott le (Hívások).
  • Egyéb rendszerfunkciók: a leglassabb PHP-függvények, szintén fájllal és sorral. A curl_exec egy külső HTTP-kérés (például egy API, egy licencszerver vagy egy frissítéskereső hívása): ennél az oldal egy másik szerver válaszára várt.

A sorok elején lévő nyílra kattintva a rövidített fájlútvonal teljes hosszában is megjelenik.

X-Ray Egyéb rendszerfunkciók: a usleep és a curl_exec függvény a fájllal és az időtartammal

Az Időtartam (%) oszlop azt mutatja, hogy az elem a kérés teljes idejének hány százalékát vitte el; zárójelben a pontos idő áll. A százalékok átfedik egymást, ezért nem adódnak össze 100%-ra: egy bővítmény ideje magában foglalja az általa indított lekérdezések és függvények idejét is. A fenti példában egy szándékosan lassúra írt tesztbővítmény (kb-xray-teszt) a kérés 92,6%-át vitte el, ezen belül egy lassú lekérdezés 60%-ot, egy usleep hívás 27%-ot.

Mit kezdjen az eredménnyel?

  • Egy bővítmény viszi el az idő nagy részét: frissítse a legújabb verzióra, nézze meg a beállításait (sok bővítmény minden oldalbetöltéskor statisztikát gyűjt, külső szolgáltatást hív vagy naplóz), és ha nincs rá szükség, kapcsolja ki. A bővítmények kezeléséről a WP Toolkit bővítménykezeléséről szóló cikk szól. Mielőtt éles oldalon kapcsolgatna, próbálja ki egy staging másolaton.
  • Egy adatbázis-lekérdezés lassú: gyakran egy túlhízott tábla az oka. WordPressnél nézze meg a wp_options tábla automatikusan betöltött adatait és a wp_postmeta táblát.
  • Ugyanaz a lekérdezés sokszor fut le (magas Hívások érték): ez jellemzően egy bővítmény vagy a sablon hibája, amely egy listát elemenként, külön lekérdezésekkel tölt be. Jelezze a bővítmény vagy a sablon fejlesztőjének; a PDF-jelentés ehhez jó kiindulópont.
  • A curl_exec lassú: az oldal egy külső szerverre vár. Derítse ki a Fájl oszlopból, melyik bővítmény indítja a kérést; ha időtúllépés is előfordul, a cURL error 28 és 60 hibáról szóló cikk segít.
  • A kérést az erőforráskorlát lassította: ha egy kérés közben a fiók elérte a processzor- vagy lemezhasználati (IO) korlátját, az X-Ray ezt külön jelzi a kérésnél. Ilyenkor nem a kód a lassú, hanem a rendszer fogta vissza a kérést. Nézze meg a fiók erőforrás-használatát, és ha rendszeresen a korláton van, érdemes nagyobb csomagra váltani (lásd még: 508 Resource Limit Is Reached hiba).
  • Minden kérés gyors, az oldal mégis lassú: a lassúság nem a PHP-ben van, hanem a böngészőben (nagy képek, sok JavaScript, külső betűtípusok és szkriptek). Ezt a PageSpeed Insights mutatja meg; a WordPress gyorsításáról szóló cikk és a cPanel tárhely teljesítményéről szóló cikk ad ötleteket. A WordPress lassulásának gyakori okait blogcikkünk gyűjti össze.

Jó tudni

  • Az X-Ray a CloudLinux operációs rendszer része. A dedikált cPanel szervereken alapértelmezés szerint nem CloudLinux fut, ezért ott az X-Ray App nem érhető el.
  • A nyomkövetés a futása alatt maga is lassít valamennyit: a CloudLinux mérései szerint 5–10%-kal nő az oldalak betöltési ideje. Ezért az X-Ray nem állandó megfigyelésre, hanem egy konkrét lassúság okának felderítésére való. A feladat a kért kérésszám vagy időszak után magától leáll, és amíg nem fut, nem használ erőforrást.
  • Amíg egy feladat fut, a PHP OPcache JIT funkciója ki van kapcsolva az adott webhelyen; a feladat végeztével visszakapcsol.
  • A rögzített adatok (URL-ek, IP-címek, SQL-lekérdezések) 30 napig érhetők el, utána automatikusan törlődnek. Ha korábban szeretné eltávolítani őket, törölje a feladatot.
  • A felhasználói felületen nem indítható folyamatos, napi jelentést küldő nyomkövetés. Ha egy időszakosan jelentkező lassúságot hosszabb ideig kellene figyelni, írjon nekünk, és segítünk.
  • Ha a hibakeresés során PHP-hibaüzenetekre is kíváncsi, kapcsolja be a WordPress hibakereső módját.
Vissza: cPanel leírások (44)