Kui Node.js rakendus jääb taustale tööle, protsesside arv täitub ja sa ei saa enam isegi Terminali avada, on tegu tüüpilise olukorraga, mille saab enamasti ise lahendada ja edaspidi ära hoida. Allpool on selgitatud, mis toimub ja mida teha.
Näitaja Number of Processes (tehnilise nimega nproc) ei loe ainult programme, vaid ka nende sisemisi töölõimi (threade). Node.js rakendused, eriti Next.js koos raskete sõltuvustega (näiteks PDF-ide loomiseks kasutatav peata Chrome, Playwright või Puppeteer), võivad hoida korraga kümneid kuni sadu töölõimi.
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.
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 ja kättesaamatuks muutuvad ka kõik teised sama konto veebilehed.
Mida teha:
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.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.
Ohutusreegel (oluline): 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. Pane tähele, et 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.
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).kill <PID>. Kui protsess ei reageeri, kasuta käsku kill -9 <PID>.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.
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 ning laadida jagatud majutusse ainult valmis versioon.
Kui su 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: Kuidas luua Node.js rakendust?