Introducerea runqstat – Nou Linux Rula Coadă & Sarcina Medie Instrument

Obtinerea real de Încărcare a PROCESORULUI Medie pe Linux

Linux Sarcina Medie este la fel de vechi ca și dealurile, și la fel de confuz, ca puțini ingineri poate spune chiar și ceea ce este într-adevăr este sau cum este calculat.,
din Fericire, Brendon Gregg are o mare sinteză, inclusiv istoria sa, la Linux Medii de Încărcare: Rezolvarea Misterului, unde puteți vedea problema de bază:

Linux Sarcina Medie include I/O

este la fel de simplu ca asta. Spre deosebire de toate celelalte sisteme asemănătoare UNIX (Solaris, AIX etc.), Linux numără atât procesele rulante / rulabile, cât și procesele blocate (neîntreruptibile), care de obicei așteaptă I/O. Acesta este un lucru rău și datează de la un patch arhaic de 24 de ani pe care Brendon l-a găsit.

de ce ne pasă?,

ne pasă deoarece pe orice sistem cu utilizare mixtă (folosind atât CPU cât și I/O), media de încărcare rezultată este foarte variabilă și adesea inutilă. Acest lucru poate fi deosebit de rău cu sistemele cu filet puternic care pot provoca I/O, astfel încât este ușor să aveți zeci sau sute de ele blocate pe discuri lente.ceea ce majoritatea dintre noi doresc cu adevărat este măsura tradițională Unix a mediei de încărcare, care este numărul mediu de procese rulabile medii în timp. Acest lucru ne spune cât de încărcat este sistemul nostru și putem privi coada ca o măsură a saturației, adică., o coadă CPU continuă înseamnă că suntem supraîncărcați.

Deci, cum putem obține asta?

vrem PROCESORUL Rula lungimea Cozii, care devine > 0 atunci când procesele trebuie să așteptați pentru CPU. Dar este greu de obținut cu exactitate, iar kernel-ul Linux nu este foarte prietenos în acest domeniu.

În primul rând, ceea ce oamenii Linux numesc coada de rulare include sarcini de rulare, deci nu este chiar coada, ci coada plus ceea ce rulează. Asta e confuz, și, astfel, trebuie să scadă numărul de procesoare pentru a obține un sentiment de coada reală.,mai multe instrumente pot obține dimensiunea curentă a cozii de rulare instantanee. Aceasta este ceea ce arată coloana „r” vmstat și „sar-q”; ambele obțin acest lucru din metrica procs_running a /proc/stat.

problema este că acesta este un număr instantaneu, deci este foarte zgomotos și trebuie să fie mediat pentru a obține date utile, dar kernel-ul nu va face acest lucru pentru dvs. În mod ideal, ar exista o ieșire de kernel în /proc numai pentru CPU și I/o numai mediile de încărcare, dar nimeni nu a creat încă acest lucru.,deci, avem nevoie de un instrument care încearcă să imite modul în care funcționează Load Average, prin eșantionarea rapidă a acestei dimensiuni de coadă de rulare instantanee și prin medierea acesteia în timp.

Introducerea runqstat

runqstat face acest lucru — este un simplu instrument de linie de comandă scrisă în care Merge în mod implicit probe de această dimensiune coadă la fiecare 10ms și mediile asta peste o secundă. Scopul este o măsură stabilă și precisă a cât de ocupat este sistemul.,
acesta include opțiuni pentru a schimba rata de eșantionare și timpul mediu, plus pentru a scădea numărul de procesoare, astfel încât să puteți vedea doar dimensiunea reală coadă, dacă doriți.de asemenea, are opțiunea de a calcula numărul mediu blocat, care, teoretic, puteți scădea din media de încărcare pentru a obține o imagine diferită a saturației procesorului (și pentru a vedea cât de mult vă provoacă media de încărcare a problemelor).cu acest instrument, echipele ops au în sfârșit o modalitate bună de a monitoriza saturația serverelor Linux.

găsiți-l pe Github — runqstat

Share

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *