Bedryfstelsels

Hoe om met die htop-opdrag op Linux-bedieners CPU- en RAM-vretende skripte op te spoor

  • 14 min. leestyd
  • Hostragons-span
Hoe om met die htop-opdrag op Linux-bedieners CPU- en RAM-vretende skripte op te spoor

Op Linux-bedieners is die htop-opdrag een van die handigste gereedskap om regstreeks te monitor watter skripte oorbenutting maak van die verwerker (CPU) en RAM. Deur die htop-skerm se kolomme soos CPU%, MEM%, PID, USER, TIME+ en COMMAND te bestudeer, kan jy vinnig opspoor watter PHP, Python, Node.js, cron, databasis of stelselproses jou bediener oorlaai. Daarna kan jy die eienaar van die proses, lêerpad en funksie nagaan en op ’n veilige wyse optree om die probleem aan te spreek.

Of dit nou gedeelde hosting, VPS, VDS of ’n toegewyde bediener is, die meeste skielike vertraginge kom voor as gevolg van onbeheerde skripte wat sonder toesig loop. ’n Foutiewe WordPress-inprop, ’n PHP-lêer wat vasgevang is in ’n eindelose lus, ’n intensiewe cron-taak, ’n nie-geoptimaliseerde databasisnavraag of ’n gekaapte weblêer kan in ’n paar minute die CPU-verbruik tot 100% laat styg. As RAM verbruik styg, kan dienste begin stotter, MySQL-verbindinge kan verbreek, webwerwe kan 503-foute wys en die Linux-kern kan met die OOM Killer sekere prosesse beëindig.

In hierdie gids neem ons jou stap vir stap deur die installasie van htop, hoe om die skerm te lees, hoe om CPU- en RAM-vretende skripte te identifiseer, hoe om die lêerpad via PID te vind en hoe om veilig in te gryp. Ons behandel ook sekuriteitskontrole, cron-monitering, log-analise en nuttige optimaliseringstips om herhaling te voorkom. As jy gereeld bronlimietprobleme op jou bediener ervaar, kan jy ook jou infrastruktuur oorweeg deur die VPS bedieningspakkette en Hoogprestasie web hosting bladsye na te gaan.

Wat is htop en waarom is dit nuttiger as die top-opdrag?

htop is ’n interaktiewe terminal-instrument om prosesse op Linux-stelsels te monitor. Dit is soortgelyk aan die klassieke top-opdrag, maar bied ’n meer leesbare koppelvlak, kleurgecodeerde bronwysers, maklike sortering, soek, filter en prosesbestuursfunksies. Dit maak htop veral nuttig vir vinnige diagnose op lewendige bedieners en is dikwels die eerste instrument wat stelseladministrateurs gebruik.

Met htop kan jy onmiddellik die volgende inligting sien:

  • CPU-verbruik per proses in persentasie
  • RAM-verbruik per proses in persentasie en geheuehoeveelheid
  • PID (proses-ID)
  • Gebruiker wat die proses uitvoer
  • Opdraglyn of skripnaam
  • Uittree-tyd en prioriteitsvlak
  • Load average, totale RAM, swap en aantal CPU-kernverbruik

In ’n hosting-omgewing waar verskeie webwerwe, gebruikers of dienste op dieselfde bediener loop, is dit nie genoeg om net die totale bronverbruik te ken nie. Jy moet weet watter gebruiker, watter webwerf, watter cron-taak of watter skrip die probleem veroorsaak. Die htop-opdrag op Linux-bedieners help jou om hierdie aanvanklike diagnose vinnig te maak.

Hoe om htop te installeer: Opdragte volgens Linux-verspreiding

Baie moderne Linux-verspreidings het htop nie standaard geïnstalleer nie. As jy root- of sudo-regte het, kan jy dit binne ’n paar sekondes installeer. Dit is goed om eers jou pakketlys op te dateer, veral op vars bedieners, om foute te verminder.

Installasie op Ubuntu en Debian-bedieners

Gebruik die volgende opdragte op Ubuntu- of Debian-gebaseerde bedieners:

sudo apt update

sudo apt install htop -y

Na installasie kan jy htop begin deur net die opdrag htop te tik. As jy nie sudo-regte het nie, moet jy jou hostingverskaffer kontak vir hulp. Op ’n bestuurde VPS het jy normaalweg root-toegang.

Installasie op AlmaLinux, Rocky Linux, CentOS en RHEL

Op RHEL-gebaseerde stelsels gebruik jy gewoonlik dnf of yum as pakketbestuurder, afhangend van die weergawe:

sudo dnf install htop -y

Ouer CentOS-weergawes benodig moontlik die EPEL-repository:

sudo yum install epel-release -y

sudo yum install htop -y

As die installasie suksesvol is, sal die htop-skerm met kleur gekoppelde monitortuie verskyn wanneer jy htop tik. As jy nuut is met bedienerbestuur, kan die Linux opdrag gids ’n goeie beginpunt wees.

Hoe om die htop-skerm te lees: Wat beteken elke kolom?

Wanneer htop oopmaak, sien jy bo-aan die skerm die status van CPU-kerns, RAM, swap, aantal take, drade, load average en bediener se uptime. Onderaan is die lys lopende prosesse. Die belangrikste kolomme vir probleemopsporing is soos volg:

Hoe om die htop-skerm te lees: Wat beteken elke kolom?
Kolom Betekenis Wanneer om ag te slaan?
PID Unieke prosesidentifikasie nommer. Benodig om lêerpaaie en verwantskappe te ondersoek.
USER Linux-gebruiker wat die proses uitvoer. Onverwagte gebruikers wat prosesse bestuur, moet ondersoek word.
CPU% Huidige CPU-verbruik deur die proses. Prosesse wat lank tussen 80-100% bly, is verdag.
MEM% Proses se aandeel in die totaal beskikbare RAM. Enkel skripte met 20% of meer van RAM gebruik is risiko-vol.
TIME+ Totale CPU-tyd wat die proses al gebruik het. Toon langdurige bronvretende prosesse, nie kortstondige nie.
COMMAND Die opdrag of skrip wat uitgevoer word. Vir php, python, node, perl, bash, java, ens. moet lêerpaaie nagegaan word.

’n Belangrike punt is dat ’n kortstondige CPU-piek nie noodwendig ’n probleem beteken nie. Byvoorbeeld, rugsteun, beeldoptimalisering, kas-skoonmaak of hoë verkeer kan CPU tydelik verhoog. Die probleem ontstaan wanneer ’n proses vir minute lank hoë CPU- of RAM-verbruik handhaaf, load average baie hoër as die aantal kerns is, en webdienste nie meer reageer nie.

Hoe om CPU-vretende skripte met htop op te spoor

Terwyl htop loop, kan jy met die F6-toets die sorteringskolom kies of direk op die CPU%-kolom klik (as jou terminal muisondersteuning het) om prosesse te sorteer volgens CPU-verbruik. Die prosesse wat bo-aan staan, is die grootste CPU-vreters.

Stap 1: Sorteer volgens CPU%

Sortering op CPU-gebruik wys jou watter prosesse ononderbroke hoë verbruik het. Dit kan php-fpm, php, python3, node, java, mysqld of bash wees. Op enkelkern-stelsels is 100% die maksimum, maar op multi-kern stelsels kan ’n proses 200% of selfs 400% bereik as dit verskeie kerne gebruik.

Stap 2: Neem PID en USER neer

Skryf die PID en USER van die verdagte proses neer. Byvoorbeeld, as PID 24819, USER is siteuser en COMMAND wys php /home/siteuser/public_html/wp-cron.php, is dit waarskynlik ’n WordPress cron-verwante probleem. As COMMAND te kort is, kan jy htop se instellings aanpas om die volledige opdraglyn te sien of die ps-opdrag gebruik.

Stap 3: Kyk na die volle opdrag van die proses

Gebruik die volgende om die volledige opdraglyn te kry:

ps -fp PID

Byvoorbeeld:

ps -fp 24819

Dit wys gewoonlik watter lêer die proses uitvoer. As dit lyk soos php /home/gebruiker/public_html/index.php, kan dit ’n webverkeer-verwante proses wees. As dit wys na ’n inprop soos wp-content/plugins/onbekende-inprop/task.php, kan dit ’n inpropprobleem wees.

Stap 4: Kyk watter lêers oop is

Die lsof-opdrag is nuttig om te sien watter lêers ’n proses oop het:

lsof -p PID

Hiermee kan jy sien watter lêers, biblioteke, logs en netwerkkonneksies die proses gebruik. In ’n hosting-omgewing help dit om uit te vind watter webwerf se lêers besig is. Byvoorbeeld, ’n vreemd benoemde PHP-lêer in /home/example/public_html/wp-content/uploads kan ’n sekuriteitsrisiko aandui. In so ’n geval is dit nie genoeg om net die proses te stop nie; lêers moet skoongemaak word, wagwoorde verander, inproppe opgedateer en ’n sekuriteitsskandering gedoen word. Vir SSL en veilige verbindinge kan jy ook die Oplossings vir SSL sertifika raadpleeg.

Hoe om RAM-vretende skripte met htop op te spoor

RAM-probleme is dikwels minder opvallend as CPU-probleme. CPU-pieke veroorsaak dikwels onmiddellike vertraging, maar as RAM uitgeput raak, kan dienste onverwags afsluit, swap intensief gebruik word en die bediener algehele traagheid toon. Sortering volgens MEM% in htop help om die grootste geheuevreters te identifiseer.

Verstaan MEM%, RES en Swap

htop wys standaard die MEM% kolom. Sommige konfigurasies wys ook VIRT, RES en SHR kolomme. RES is die belangrikste vir RAM-analise want dit wys die werklike fisiese geheue wat die proses gebruik. VIRT dui net die virtuele geheue aan en kan misleidend wees.

Byvoorbeeld, op ’n VPS met 4 GB RAM is dit nie normaal as ’n enkele PHP-proses 900 MB RES gebruik nie. ’n Node.js-toepassing wat van 200 MB tot 1.5 GB groei, dui dalk op geheuelek. Hoë RAM gebruik deur MySQL of MariaDB kan soms normaal wees as gevolg van caching, maar dit moet gesien word saam met navraagprestasie, bufferinstellings en totale geheue.

Algemene oorsake van RAM-vretende skripte

  • PHP, Python of Node.js-kode wat in ’n eindelose lus vassteek
  • Groot CSV-, XML- of JSON-lêers wat in die geheue gelaai word
  • Nie-geoptimaliseerde WordPress-inproppe en tema-funksies
  • Beeldverwerking, PDF-generering of video-omskakeling
  • Swak kasgebruik wat tot herhaalde swaar navrae lei
  • Hoë botverkeer of aanvalle wat dieselfde skrip baie keer laat loop
  • Aanhoudende agtergronddienste met geheuelekkasies

Om net ’n proses met die kill-opdrag te beëindig, gee net tydelike verligting. Om die probleem permanent op te los, moet jy verstaan wat die skrip doen, hoe dit geaktiveer word en waarom dit nie geheue vrylaat nie.

Soek, filter en boomstruktuur in htop

As daar honderde prosesse op die bediener loop, is dit moeilik om handmatig te soek. htop bied handige sneltoetse: F3 vir soek, F4 vir filter, en F5 vir boomstruktuur. Die boomstruktuur wys ouer-kind verhouding tussen prosesse. Dit help om byvoorbeeld php-fpm kindprosesse, cron-geskeduleerde skripte of Node.js-dienste wat deur supervisor bestuur word, duidelik te sien.

Voorbeelde van nuttige filters

  • Tik php om net PHP-prosesse te sien.
  • Tik python om Python-skripte te filter.
  • Gebruik wp-cron om WordPress cron-aktiwiteit te monitor.
  • Tik node om Node.js-toepassings te ondersoek.
  • Filter op ’n spesifieke gebruiker se prosesse om ’n enkele hostingrekening te monitor.

Hierdie filters spaar tyd, veral op multi-gebruiker bedieners met 30+ webwerwe. Deur USER-kolom en opdraglyne saam te gebruik, kan jy vinnig uitvind watter rekening die probleem veroorsaak. As jy jou projek se domeinbestuur wil vereenvoudig, kyk gerus na die Domein navraag en registrasie bladsy.

Veilige stappe om in te gryp by verdagte PID

Wanneer ’n proses baie hulpbronne gebruik, is dit aanloklik om dadelik kill -9 te gebruik. Dit kan egter lei tot data verlies, onvoltooide skryfaksies of diensonsekerheid. ’n Meer versigtige benadering word aanbeveel.

1. Dokumenteer die proses

Skryf PID, USER, COMMAND, CPU%, MEM% en tyd neer. Maak ’n skermskoot van htop. Hierdie inligting help met toekomstige vergelykings en tegniese verduidelikings aan kliënte, veral in agentskappe, e-handel of korporatiewe projekte.

2. Verifieer lêerpaaie

Gebruik ps -fp PID en lsof -p PID om lêerpaaie te bevestig. As die lêers in die webwortel is, ondersoek toepaslike logs soos wp-content/debug.log vir WordPress, webbediener se access en error logs, en PHP-FPM slow logs vir leidrade.

3. Probeer eers ’n sagte beëindiging

Stuur eers die standaard beëindigingssein:

kill PID

Wag ’n paar sekondes en kyk of die proses sluit. As nie, en dit beïnvloed bedienergesondheid ernstig, gebruik:

kill -9 PID

Wees versigtig met kill -9 aangesien dit die proses geen kans gee om skoon te maak nie. Dit kan databasis- of lêerskrywings verhoed.

4. Vind die oorsaak as dit weer begin

As ’n proses direk weer opstart, kan ’n cron-taak, systemd-diens, supervisor, webversoek of botverkeer die rede wees. Gebruik crontab -l vir cron, systemctl status dienernaam vir stelseldienste, en ondersoek webtoegangslogs. As dit ’n WordPress wp-cron probleem is, kyk die cron-konfigurasie en kasbeleid na.

Samevoeging van htop-resultate met logdata

Samevoeging van htop-resultate met logdata

htop wys jou wat hulpbronne verbruik, maar logs vertel jou waarom. Sonder logs is jou diagnose onvolledig. Byvoorbeeld kan ’n php-fpm proses 180% CPU gebruik, maar sonder toegang tot toeganglogs weet jy nie watter URL of bot dit veroorsaak nie.

Belangrike logs om te ondersoek sluit in:

  • Webbediener se toeganglogs: wys vrae met hoë verkeer.
  • Webbediener se foutlogs: wys PHP-foute, lêertoestemmings en 500-foute.
  • PHP-FPM slow logs: identifiseer stadig werkende PHP-skripte.
  • MySQL slow query logs: vang swaar SQL-navrae op.
  • Auth en secure logs: teken verdagte aanmeldpogings op.
  • Cron logs: wys wanneer geskeduleerde take uitgevoer is.

As htop ’n PID met hoë CPU wys en daardie tydstip duisende versoeke aan /wp-admin/admin-ajax.php in die toeganglogs is, kan die probleem ’n inprop, botverkeer of swak AJAX-ontwerp wees. In so ’n geval moet WAF, tempo-beperking, kas en inprop-optimalisering saam oorweeg word. Vir ’n breër blik op prestasie kan jy die webwerf spoed optimalisering raadpleeg.

Hoe om normale van problematiese belasting te onderskei

Hoë hulpbronverbruik beteken nie altyd ’n krisis nie. Hardeware, verkeer, toepassings en onderhoud speel ’n rol. Op ’n 2-kern VPS is ’n load average van 6-8 vir lang tyd ’n ernstige bottelnek. Op ’n 16-kern toegewyde bediener kan dit normaal wees. Weet altyd die aantal kerns voordat jy load average interpreteer.

Hoe om normale van problematiese belasting te onderskei
Waarneming Verwagte Oorsaak Voorgestelde Optrede
CPU is kortliks 100%, dan terug na normaal Tydelike hoë las Bevestig met logs, moenie dadelik ingryp nie.
Selfde PID gebruik vir ure hoë CPU Eindelose lus of swaar proses Vind PID-lêerpad, ondersoek skrip.
RAM styg stadig en daal nie Geheuelekkasie Kontroleer dienskode en werkersinstellings.
Swap gebruik neem skielik toe Te min fisiese RAM Optimaliseer RAM of oorweeg opgradering.
Baie identiese PHP-prosesse loop Botverkeer of oorlading Kontroleer logs, firewall en kas.

Hierdie vergelyking help om paniek te voorkom en werklike prestasiekrisisse te identifiseer. Op e-handelswebwerwe kan promosieperiodes, betaalintegrasies en voorraadopdaterings tydelike brontoestande veroorsaak. As dit die gebruikerservaring beïnvloed, moet optimalisering en bedienerkapasiteit saam oorweeg word.

Kan ’n bronvretende skrip kwaadwillig wees?

Nie altyd is ’n CPU- of RAM-vretende proses bloot ’n fout nie. Gekaapte webwerwe kan deur hackers gebruik word vir spam, kripto-mynbou, proxy-verkeer, DDoS-botte of agterdeur-skripte. Onverwagte gebruikers, vreemde opdragte, lukraak benoemde lêers, lêers wat vanuit /tmp of public_html/uploads loop, is verdagte tekens wat nie geïgnoreer moet word nie.

Verdagte simptome

  • COMMAND met sinnelose of lukraak karakters in lêernaam
  • Lêers wat uit /tmp, /dev/shm of uploads uitgevoer word
  • Perl, python of bash prosesse wat gewoonlik nie hoort nie
  • Hoë eksterne netwerkverbindings deur ’n proses
  • Selfde gebruiker wat baie prosesse vinnig begin
  • Nuwe onlangse ongemagtigde veranderinge in weblêers

In so ’n geval, versamel bewyse met prosesuitsette voordat jy sluit. Kontroleer lêertoestemmings, isoleer kwaadwillige lêers, verander alle beheerpaneel- en CMS-wagwoorde, werk inproppe, temas en kern op en doen ’n sekuriteitsskandering. Tweefaktor-verifikasie en die verwydering van onnodige skryfregte help om risiko’s op die lang termyn te verminder.

Beste praktyke om prestasieprobleme te voorkom

Dit is belangrik om htop te gebruik om probleme te vind, maar dit is net so belangrik om herhaling te voorkom. Die volgende maatreëls verminder CPU- en RAM-verwante onderbrekings op Linux-bedieners aansienlik.

  • Stel PHP memory_limit, max_execution_time en pm.max_children in volgens bediener se kapasiteit.
  • Gebruik kasmeganismes in WordPress, Joomla of ander toepassings.
  • Verwyder onnodige inproppe, temas en modules.
  • Optimaliseer swaar navrae met MySQL slow query log.
  • Moet nie cron-take almal op dieselfde tyd laat loop nie, versprei dit oor tyd.
  • Beperk botverkeer met rate limiting, robots.txt en firewall reëls.
  • Rol logs gereeld om en monitor die impak van groot loglêers op skyf en geheue.
  • Monitor bediener se metrieke gereeld, nie net tydens krisisse nie.

As die probleem steeds voortduur, kan die rede buite sagteware lê: verhoogde verkeer, groter toepassings of ’n ontoereikende hostingpakket. ’n Skaleerbare VPS, meer RAM, vinniger NVMe skyf of ’n geïsoleerde bediener kan dan ’n oplossing wees. Vergelyk jou opsies by Hosting pakkette en korporatiewe bedieneroplossings.

Voorbeeld: CPU-piek op ’n WordPress-webwerf

Kom ons kyk na ’n realistiese scenario. ’n VPS met 4 kerns en 8 GB RAM hou ’n paar WordPress-webwerwe aan. Gebruikers kla oor stadige laai en soms 502-foute. htop wys ’n load average van 12, alle CPU-kerns is besig, en baie php-fpm prosesse van dieselfde gebruiker is bo-aan die lys.

Met F4 filter jy op die gebruiker. Jy neem die PID van ’n hoë CPU proses neer. Die ps -fp PID wys ’n php-fpm werker en lsof -p PID wys toegang tot /home/site/public_html/wp-content/plugins/example-importer/import.php. Die toeganglogs wys bestendige versoeke deur ’n admin en herhalende AJAX-oproepe.

Die oplossing is om die invoerproses te stop, die inprop se geskeduleerde taak te deaktiveer, groot data in kleiner dele te laai en PHP se max_execution_time te verstel. WordPress wp-cron word vervang met die stelsel se cron. Die load average val van 12 tot 1.8, CPU gebruik normaliseer en webwerf se reaksietye verbeter merkbaar. Hierdie voorbeeld wys hoe htop, gekombineer met ps, lsof en log-analise, ’n kragtige diagnose-instrument is.

Algemene foute tydens htop gebruik

  • Net die hoogste proses doodmaak sonder om die oorsaak te soek.
  • VIRT waarde as werklike RAM verbruik sien.
  • MySQL se kas-RAM as probleem beskou.
  • kill -9 as eerste opsie gebruik.
  • Logs nie nagaan nie en gebruikers onregverdig beskuldig.
  • Load average los van kerngetal interpreteer.
  • Sekuriteitskontrole ignoreer by verdagte lêers.

Om hierdie foute te vermy, help om stilstand te verminder en risiko van data verlies te beperk. ’n Nuwe gebruiker in stelseladministrasie moet weet dat ’n goeie diagnose meer werd is as ’n vinnige ingryping.

Gereelde vrae

Wat doen die htop-opdrag op ’n Linux-bediener?

htop wys regstreeks lopende prosesse met hul CPU-, RAM-, gebruiker-, PID- en opdraginligting. Dit maak dit maklik om skripte wat te veel hulpbronne gebruik, vinnig op te spoor.

Hoe vind ek ’n CPU-vretende skrip met htop?

Sorteer prosesse op CPU% in htop, neem die PID en USER van die langdurig hoë verbruikende proses neer. Gebruik dan ps -fp PID en lsof -p PID om lêerpaaie en kommando’s te bevestig.

Moet ek MEM% of VIRT gebruik om RAM-verbruik te evalueer?

Gebruik MEM% en veral RES as meer betroubare maatstaf. VIRT dui virtuele geheue aan en wys nie altyd die werklike RAM-verbruik nie.

Is dit veilig om ’n proses dadelik met kill -9 te beëindig?

Meestal nie. Dokumenteer eers die proses, verifieer lêerpaaie en probeer ’n sagte kill PID. Gebruik kill -9 net as laaste uitweg.

Beteken hoë CPU gebruik altyd ’n aanval?

Nee. Rugsteun, invoer, kasbou of hoë verkeer kan CPU verhoog. Maar vreemde lêernaam, /tmp of uploads lêers en ongewone gebruikers in htop dui op moontlike sekuriteitsprobleme.

Samevattend is die htop-opdrag op Linux ’n vinnige, praktiese en effektiewe beginpunt om CPU- en RAM-vretende skripte op te spoor. Die beste resultate kom deur htop-data te kombineer met PID-analise, lsof, cron-ondersoek en log-analise. As hulpbronprobleme gereeld voorkom, evalueer beide sagteware-optimalisering en infrastruktuur. Hostragons se hosting-, VPS- en SSL-oplossings kan jou help om die beste pasgemaakte pakket sonder verkoopsdruk te kies.

Deel hierdie artikel:

Hostragons-span

Opgedateerde gidse van ons kundige span oor hosting, bedieners en domeinname. Kom ons vind saam die regte oplossing vir jou projek.

Kontak Ons