Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Examinarea proceselor în Linux: comenzile ps, top și htop

21 august 2016 By Bobses 3 comentarii

Comanda ps

Unul din cele mai importante instrumente în managementul proceselor din Linux este comanda ps. Programul afișează statusul proceselor (processes' status - de aici vine și numele comenzii).

Este folositoare, în mod special atunci când computerul sau serverul nu funcționează așa cum ar trebui - de exemplu, este încetinit de un anume proces și vrem să depistăm cauza funcționării defectuoase.

Comanda ps suportă foarte multe opțiuni, dar doar câteva vor fi folosite în mod obișnuit. Interpretarea ieșirii poate fi un pic dificilă, mai ales că, în funcție de opțiunea dată, output-ul poate fi diferit.

Sintaxa comenzii:

ps [opțiuni]

 Voi prezenta doar câteva opțiuni, cele mai folosite. Pentru a vedea toate opțiunile posibile pentru ps, scrieți în terminal vestita comandă man: man ps

Afișarea tuturor proceselor care rulează în sistem

În mod prestabilit, ps afișează doar procesele care rulează în terminalul propriu. Opțiunea -A sau -e determină afișarea tuturor proceselor din sistem, iar opțiunea x afișează toate procesele care apațin doar utilizatorului care dă comanda:

Afișarea proceselor unui anumit utilizator

Putem afișa toate procesele care aparțin unui anumit utilizator rulând ps cu opțiunea -u utilizator:

Afișarea informațiilor suplimentare

Opțiunile -f, -l, j, l, u și v extind informațiile oferite de comanda ps:

De regulă, ieșirea comenzii ps include o singură linie pentru fiecare proces, dar ps poate afișa și informații care nu pot fi cuprinse în cele 80 de caractere care formează o linie. În acest caz, ieșirea este trunchiată; pentru a evita această trunchiere, îi putem spune comenzii ps să nu facă acest lucru folosind opțiunea w sau -w. De asemenea, foarte util este și modul prin care putem trimite o astfel  de ieșire către un fișier text, astfel încât să-l putem analiza într-un editor de text care permite linii lungi:

ps w > ps.txt

Afișarea ierarhiei proceselor

Opțiunile -H, -f și --forest grupează procesele și folosește identarea pentru a arăta relațiile ierarhice între procese. Aceste opțiuni sunt utile atunci când vrem să urmărin un proces: cine l-a lansat, ce alt proces are subordonat șamd:

Toate aceste opțiuni pot fi combinate în multe feluri, pentru a obține ieșirea dorită.

Interpretarea ieșirii comenzii ps

Voi folosi o comandă cu mai multe opțiuni, pentru a avea o ieșire complexă (va afișa toate procesele, într-un format orientat spre utilizator, arătând și ierarhia proceselor):

ps -A u --forest

Cele mai importante coloane sunt:

USER - e clar, arată cărui utilizator îi aparține procesul respectiv.

PID - process ID (identificatorul unic al procesului respectiv) - foarte important în cazul în care vrem să terminăm un proces.

%CPU - procentajul folosit de procesor pentru acel proces.

%MEM - cât la sută din memorie folosește acel proces.

TIME - arată cât timp a consumat procesorul rulând acel proces.

COMMAND - comanda folosită pentru a lansa acel proces.

TTY - teletype; codul folosit pentru a identifica un terminal (nu toate procesele au alocat un terminal - daemonii, de exemplu, nu au).

Mult mai multe amănunte pot fi descoperite cu man ps.

Terminarea un proces care consumă mult și încetinește sistemul

Vom folosi comanda kill:

kill -9 pid

PID este numărul procesului identificat cu comanda ps.

TOP

O versiune dinamică a comenzii ps este top. Instrumentul top rulează în mod text. Prestabilit, top sortează intrările după folosirea procesorului și face actualizarea la fiecare 3 secunde. Este o unealtă utilă pentru stabilirea proceselor care îngreunează sistemul - acestea apar, de regulă, pe primele poziții.

Figura următoare arată o ieșire obișnuită a comenzii top pe serverul unde este găzduit acest site:

Pentru a modifica timpul la care se face actualizarea, apăsăm tasta s, scriem noua valoare și apoi ENTER.

Pentru a termina un proces, apăsăm tasta k, scriem numărul procesului și ENTER de 2 ori.

Pentru a schimba prioritatea unui proces: tasta r  (o valoare pozitivă micșorează prioritatea, în timp ce o valoare negativă o crește - doar superutilizatorul poate folosi valori negative).

Tasta M: sortarea după memoria folosită.

Tasta P: revenirea la sortarea default, după procesor.

Pentru a ieși: tasta q.

Mult mai multe informații ne sunt oferite de top, care pot fi aflate cu man top.

O altă informație furnizată de top: încărcarea medie (load average), care înnseamnă gradul de încărcare al procesurului acum (prima valoare) și în 2 momente anterioare (de regulă 5 și 15 minute). Dacă valorile sunt mari (peste 1), nu e prea bine și trebuie să vedem care este procesul ce determină o determină.

Încărcarea medie poate fi determinată și cu comanda uptime:

$ uptime
20:21:23 up 23 days, 8:23, 1 user, load average: 0.11, 0.12, 0.09

HTOP

Unealta htop este o variantă îmbunătățită a top. Despre htop am scris aici și nu are rost să reiau prezentarea.

Ce alte instrumente pentru monitorizarea unui server folosiți?

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Comenzi Linux Etichete: comenzi Linux, htop, linux, monitorizare, server virtual privat, top

Comentarii

  1. Şerban Stănescu a zis

    22 august 2016 la ora 7:28

    Mi se pare extrem de important articolul.
    Am spus-o şi o repet, mă feresc cât pot de CLI. Totuşi, a folosi interfaţa grafică pe cale să-şi dea obştescul sfârşit pentru a elimina "recalcitrantul", mi se pare un non-sens. Adică... Ce să fac? Să reclam infractorului că m-a furat? Wow!
    Încă din vremea când doar linia de comandă era calea de a instala un Linux, am învăţat (minimalist, recunosc!!) despre ps şi kill. Sint unelete indispensabile în lucrul zilnic. Cum marea majoritate a proceselor care fac urât sunt cele GUI (Toate? De completat informaţiile!), e o evidenţă faptul că oprirea acelui proces e mult mai posibilă şi chiar probabilă în CLI.
    Mi-a plăcut mult referirea la "man program".
    Deşi recunosc, e un program cam prea auster pentru felul meu de a fi, totuşi, man e disponibil chiar şi pe o maşină "în dureri".
    Dacă memoria mă mai serveşte, inclusiv în modul "Rescue", putem accesa man. Trebuie doar să fim obişnuiţi cu căile capitolelor şi cu un editor de text tip CLI (Nano, cred că merge). Orice interfaţă Rescue, are cel puiţin un editor din clasa consolă, deoarece e imposibil să faci reabilitarea unui sistem "zdrobit" (crashed), fără a edita fişiere de configurare. De altfel, acesta e unul din rosturile acestor fişiere... Aşadar, putem avea acces la documentaţie, chiar şi "în vremuri de bejenie" 🙂
    Mi-a făcut plăcere să citesc articolul şi trebuie să admit, ai muncit ceva la capturi!
    Închei precizând că am considerat extrem de util microtutorialul legat de formatarea paginilor în CLI, problemă cu care se poate oricine confrunta la un moment dat.
    Cei învăţaţi cu interfaţa grafică, folosesc modul "Wrap Text", dar în consolă, rândurile se formatează doar cu comandă explicită. Şi e valabil şi la ls şi la dir, de exemplu. De fapt, "w" vine de la "wide", lat sau lăţime. În cazul nostru, înseamnă "ţine cont de lăţimea ecranului la afişarea datelor". Implicit, majoritatea programelor scriu datele pe o singură linie şi, funcţie de rezoluţie (80, 135 caractere), linia va fi trunchiată, cu excepţia cazului când dăm explicit comanda "w" programului care o are pe listă ca opţiune.
    Închei intervenţia mea, recomandând tuturor cititorilor SĂ FACĂ ce scrie în articol, măcar din curiozitate. Cine ştie când poate fi de folos PRACTICA asta?

    Răspunde
    • Bobses a zis

      22 august 2016 la ora 7:46

      Mulțumesc pt. aprecieri.
      Ca editor de text folosesc nano - mi se pare cel mai ușor de învățat. Mai puternic este Vim, dar necesită o perioadă mai mare de acomodare cu el. Probabil, cândva, voi face și un tutorial despre Vim.

      Răspunde

Trackbacks

  1. Performanță Linux: analiză în 60 de secunde – partea a 2-a | Lumea lui Bobses spune:
    20 mai 2017 la 13:00

    […] voi insista asupra acestei comenzi – am mai vorbit despre ea aici. Comanda top vine inclusă în toate sistemele Linux, dar dacă doriți ceva mai mult puteți […]

    Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}