Kommentaaride laadimisel ilmnes probleem.

Node.js rakendus ei käivitu või protsesside arv (Number of Processes) saab täis


  Trüki

Kui Node.js rakendus ei käivitu ja cPaneli Ressursikasutus näitab Number of Processes piiri täis (näiteks 250 / 250), on taustale jäänud vanad protsessid või liiga palju töölõimi. Ava Node.js-i rakenduse seadistus, peata rakendus (Stop) ja käivita uuesti (Start). Kui piir jääb täis, sulge orbprotsessid või pöördu klienditoe poole.

Lühidalt

  • Esmalt proovi Node.js-i rakenduse seadistus all Stop ja siis Start. Sageli see lahendab olukorra.
  • Kui olek on stopped, aga piir on ikka täis, on taustal „orvuks“ jäänud protsessid. Sulge need ise käsurealt või pöördu klienditoe poole.
  • Käivita ja peata rakendus ainult cPaneli kaudu. Uue versiooni järjekord: Stop → uued failid → Run NPM Install → Start.
  • Prisma puhul kaalu seadistust queryCompiler + driverAdapters, mis vähendab töölõimede arvu.

Kuidas aru saada, et protsesside piir on täis?

  • cPaneli Ressursikasutus all on näitaja Number of Processes piiri lähedal või täis (näiteks 250 / 250).
  • cPaneli veateates või ressursikasutuse detailvaates on kirjas nproc. See on protsesside piiri tehniline nimetus.
  • Node.js-i rakenduse seadistus näitab rakendust olekus stopped, kuid koduleht töötab veebis endiselt edasi või piir jääb täis.
  • Terminal ei avane, kuvatakse viga Unable to fork või Resource temporarily unavailable.
  • Rakenduse uus versioon ei käivitu.
Processes
Number of Processes on täis: 250 / 250.

Miks protsesside piir täitub?

Näitaja Number of Processes (tehnilise nimega nproc) ei loe ainult programme. See loeb ka nende sisemisi töölõimi (threade).

Node.js rakendused võivad hoida korraga kümneid kuni sadu töölõimi. Eriti kehtib see Next.js-i kohta koos raskete sõltuvustega, näiteks PDF-ide loomiseks kasutatav peata Chrome, Playwright või Puppeteer.

Kui rakendus käivitatakse mitu korda ilma eelmist peatamata (näiteks käsurealt käsitsi, mitte cPaneli kaudu), jäävad vanad protsessid taustale tööle. cPanel ei pruugi neid enam hallata ja nupp Stop neid ei sulge.

Need „orvuks“ jäänud protsessid täidavad piiri ja takistavad uue versiooni käivitumist.

Skeem: kaks viisi uut versiooni käivitada. Vale: rakendus käivitatakse uuesti ilma eelmist peatamata, vana protsess jääb taustale ja Stop seda ei sulge, piir saab täis ja uus versioon ei käivitu. Õige: Stop, uued failid üles, Run NPM Install, Start, üks instants asendub puhtalt.
Vana protsess peab enne uue käivitamist peatuma.

Miks Prisma ja teised andmebaasiteegid piiri täidavad?

Osa teeke loob töölõimi serveri protsessorituumade arvu järgi. Näiteks Prisma päringumootor käivitab kuni ühe töölõime iga tuuma kohta.

Meie suuremates, 128-tuumalistes serverites tähendab see, et üksainus rakenduse instants võib kasutada ligikaudu 140 lõime ehk suurema osa kogu piirist.

Kui selline rakendus töötab korraks kahe instantsina (näiteks uue versiooni paigalduse ajal), saab piir kohe täis. Kättesaamatuks muutuvad ka kõik teised sama konto veebilehed.

Mida teha

  • Prisma puhul kaalu uuemat seadistust queryCompiler + driverAdapters (alates Prisma versioonist 6.7), mis ei kasuta eraldi päringumootorit. Lõimede arv langeb kümnekonna peale ja rakendus mahub kenasti piiri sisse.
  • Kontrolli pärast iga paigaldust cPaneli Ressursikasutus alt, et protsesside arv on ootuspärane.

Kuidas taastuda, kui piir on juba täis?

cPanelTarkvaraNode.js-i rakenduse seadistus

  1. Ava Node.js-i rakenduse seadistus, peata rakendus (Stop) ja käivita uuesti (Start). Sageli see lahendab olukorra.

  2. Kui Terminal ei avane veaga Unable to fork, ongi põhjus selles, et protsesside piir on täis. Ka Terminal vajab uut protsessi. Vabasta esmalt protsesse (eelmine samm) ja proovi siis uuesti.

  3. Kui Node.js-i rakenduse seadistus näitab olekut stopped, aga piir on ikka täis, on taustal „orvuks“ jäänud protsessid, mida cPanel ise sulgeda ei saa.

    Kui Sul on SSH-ligipääs ja käsurea kasutamise oskus, saad need ise leida ja sulgeda (vaata allpool „Kogenud kasutajale“).

    Kui SSH-ligipääsu pole või Sa pole kindel, pöördu klienditoe poole ning anna teada oma domeen ja rakenduse nimi. Vabastame need protsessid serveri tasandil.

Kogenud kasutajale: kuidas orbprotsess ise käsurealt sulgeda?

Eeltingimus: Sul on SSH- või Terminali ligipääs ja käsurea kasutamise oskus. Kui neid pole, jäta see osa vahele ja pöördu klienditoe poole. Eelmises punktis kirjeldatud juhis jääb kehtima.

Tähtis

Sulge protsess ainult siis, kui rakendus on cPaneli jaotises Node.js-i rakenduse seadistus olekus stopped ja oled kindel, et tegu on üleliigse, orvuks jäänud isendiga. Vale protsessi sulgemine võib katkestada töötava rakenduse või veebilehe.

Olek stopped ei garanteeri, et ühtegi aktiivset isendit pole: veebiserver võib rakenduse liikluse saabudes uuesti käivitada. Kui Sul on vähimgi kahtlus, ära sule protsessi ise, vaid pöördu klienditoe poole.

  1. Kontrolli, et rakendus on jaotises Node.js-i rakenduse seadistus olekus stopped.

  2. Leia orbprotsess. Käivita Terminalis: ps -u <kasutajanimi> -o pid,etime,cmd | grep lsnode

    Veerg etime näitab, kui kaua protsess on töötanud. Pikk tööaeg viitab rippuma jäänud isendile. Pane kirja selle protsessi PID (esimene number).

  3. Sulge protsess: kill <PID>. Kui protsess ei reageeri, kasuta käsku kill -9 <PID>.

  4. Kontrolli cPaneli jaotises Ressursikasutus, et Number of Processes väärtus on langenud. Seejärel käivita rakendus jaotises Node.js-i rakenduse seadistus uuesti (Start).

Kui Terminal ei avane (veateade Unable to fork)

Sel juhul on protsesside piir juba täis ja ka kill vajab omakorda uut protsessi. Tee esmalt jaotises Node.js-i rakenduse seadistus Stop → Start, et protsesse vabastada, või pöördu klienditoe poole.

Kuidas vältida, et piir uuesti täis saab?

  1. Käivita ja peata rakendus ainult cPaneli kaudu. Node.js-i rakenduse seadistus all on iga rakenduse real nupud Start, Stop ja Restart. Ära käivita rakendust käsitsi taustal, sest nii jäävad protsessid haldamatuks ja kogunevad.

  2. Uue versiooni paigaldamisel järgi kindlat järjekorda: peata rakendus (Stop) → laadi uued failid üles → Run NPM Install → käivita (Start). Nii asendub üks instants puhtalt ja vanu protsesse alles ei jää.

  3. Loo build lokaalselt. Next.js puhul käivita ehitamine oma arvutis ja laadi serverisse juba valmis failid. See väldib nii mälupiiri ületamist kui ka liigsete protsesside teket.

  4. Hoia sõltuvused kerged. Väldi serveris ilma graafilise liideseta brauseri (nt Chrome, Playwright, Puppeteer) jooksutamist näiteks PDF-ide loomiseks. See hoiab avatuna palju töölõime. Eelista kergemaid teeke.

  5. Jälgi protsesside arvu cPaneli Ressursikasutus alt.

Mida teha, kui piir saab pidevalt täis?

Kui Sul on mitu Node.js rakendust, mis peavad korraga pidevalt töötama, ja piir saab regulaarselt täis, võib jagatud majutuse protsesside ülempiir jääda kitsaks. See piir on jagatud majutuses ühine ja fikseeritud.

Jagatud majutus sobib kõige paremini valmis rakenduse stabiilseks tööks. Kui arendad aktiivselt (teed sagedasi builde, laadid tihti uusi versioone ja taaskäivitad rakendust mitu korda päevas), soovitame arendustööd teha oma arvutis või eraldi arenduskeskkonnas. Jagatud majutusse laadi ainult valmis versioon.

Hea teada

Kui Sinu rakendus vajab palju töölõimi või arendustempo on püsivalt kõrge, sobib Sulle paremini virtuaalserver (VPS), kus protsessipiirangut ei ole. Meie klienditugi aitab Sul sobiva lahenduse leida.

Vaata ka


Jaga
Kas oli kasu?  
© Virtuaal.com Privaatsuspoliitika