Hogyan számít bele a cron és az SSH az erőforrás-limitekbe?

A CloudLinux minden tárhelyfiókhoz egy közös erőforrás-keretet (LVE) rendel. Ebben a keretben fut minden, ami a fiókhoz tartozik: a weboldal PHP-kérései, a cron-feladatok, az SSH-ban vagy a cPanel terminálban indított parancsok, valamint a Node.js és Python alkalmazások. A csomagjához tartozó limiteket ebben a cikkben találja.

Mit jelent ez a gyakorlatban?

A cron-feladatok és az SSH-munkamenetek ugyanazokból az erőforrásokból élnek, mint a weboldal:

  • CPU, memória, IO: ha egy cron-feladat (például egy importálás, egy képátméretezés vagy egy mentés) a fiók teljes processzor- vagy lemezkeretét használja, a weboldal közben lassabban válaszol.
  • Egyidejű kapcsolatok (EP): minden futó cron-feladat és SSH-munkamenet egy helyet foglal az egyidejű kapcsolatok keretéből. Ha sok cron-feladat fut egyszerre, kevesebb hely marad a látogatóknak, és 508-as hiba is előfordulhat.
  • Folyamatok száma (NPROC): a cron-feladatok és az SSH-ban indított programok folyamatai is beleszámítanak a fiók folyamatkeretébe.

A nice vagy az ionice paranccsal elindított folyamatok is a fiók keretében maradnak, ezek a parancsok nem adnak plusz erőforrást.

Tipikus problémák

  • Egymásra futó cron-feladatok: ha egy percenként induló feladat egy percnél tovább fut, a következő példány elindul, mielőtt az előző véget érne. Néhány perc alatt több tucat példány fut egyszerre, és a fiók eléri a limitjeit.
  • Nehéz feladatok csúcsidőben: egy napközben futó nagy importálás vagy mentés pont akkor lassítja a weboldalt, amikor a legtöbb látogató van rajta.
  • A WordPress beépített cronja: a wp-cron.php a látogatások során indul el, így a háttérfeladatok a látogatók kéréseivel együtt futnak.

Jó gyakorlatok

  1. Ütemezze a nehéz feladatokat éjszakára, forgalommentes időszakra. A cron-feladatok beállításáról ez a cikk, a cron időzítési szintaxisáról ez a cikk szól.
  2. Ne futtasson feleslegesen sűrűn feladatot. Ha óránkénti futtatás elég, ne állítsa percenkéntire.
  3. Akadályozza meg az átfedést. A flock parancs gondoskodik róla, hogy egy feladatból egyszerre csak egy példány fusson. Ha az előző még fut, az új példány el sem indul:

    flock -n $HOME/.cron-import.lock php $HOME/scripts/import.php
    
  4. Váltsa ki a WordPress cronját valódi cron-feladatra, lásd: Hogyan cseréljük le a WordPress beépített cronját a cPanel ütemezett feladataival?
  5. Zárja be a nem használt SSH-munkameneteket, és ne hagyjon a háttérben futó programokat.
  6. Bontsa részekre a nagy feladatokat. Egy több ezer elemes importálás kisebb adagokban, egymás után futtatva kevésbé terheli a fiókot.

Hogy egy cron-feladat okozza-e a limitek elérését, azt a cPanel Erőforrás-használat oldalán ellenőrizheti. Ha a hibák mindig ugyanabban az időpontban jelentkeznek, vagy a Snapshot fülön a cron-feladat parancsa látszik, a feladat a ludas. Lásd: Mit jelentenek a hibaszámlálók (faults) az Erőforrás-használat oldalon?