Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9822|Atbildi: 1

Linux vmstat komandas detalizēts skaidrojums praksē

[Kopēt saiti]
Publicēts 19.10.2014 19:36:48 | | |

Komanda vmstat ir visizplatītākais Linux/Unix uzraudzības rīks, kas parāda servera stāvokļa vērtības noteiktā laika intervālā, ieskaitot serveraCPU lietojums, atmiņas lietojums, virtuālās atmiņas maiņa, IO lasīšana un rakstīšana. Šī komanda ir mana mīļākā komanda, lai pārbaudītu Linux / Unix, viena ir tā, ka tiek atbalstīts Linux / Unix, un otrs ir tas, ka, salīdzinot ar augšu, es varu redzēt visas mašīnas CPU, atmiņas un IO lietojumu, nevis tikai redzēt katra procesa CPU lietojumu un atmiņas lietojumu (dažādi lietošanas scenāriji).

Parasti vmstat rīka izmantošana tiek veikta, izmantojot divus skaitliskus parametrus, pirmais parametrs ir paraugu ņemšanas laika intervālu skaits, vienība ir sekundes, un otrais parametrs ir paraugu skaits, piemēram:


root@ubuntu:~# VMSTAT 2 1
procs -----------atmiņa---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd bezmaksas buff cache si so bi bo in cs us sy id wa
1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

2 nozīmē, ka servera stāvoklis tiek apkopots reizi divās sekundēs, un 1 nozīmē, ka servera stāvoklis tiek apkopots tikai vienu reizi.

Faktiski pieteikšanās procesa laikā mēs kādu laiku uzraudzīsim, un, ja mēs nevēlamies to uzraudzīt, mēs varam vienkārši izbeigt vmstat tieši, piemēram:


root@ubuntu:~# VMSTAT 2  
procs -----------atmiņa---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd bezmaksas buff cache si so bi bo in cs us sy id wa
1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

Tas nozīmē, ka vmstat apkopo datus ik pēc 2 sekundēm un turpinās, līdz es beidzu programmu, un es beidzu programmu pēc datu vākšanas 5 reizes šeit.

Labi, komanda ir ieviesta, tagad sāksim izskaidrot katra parametra nozīmi.

rTas nozīmē rindas palaišanu (tas ir, cik procesu patiešām ir piešķirti CPU), manis pārbaudītais serveris pašlaik ir salīdzinoši dīkstāvē, nedarbojas programmas, kad šī vērtība pārsniedz CPU skaitu, būs CPU vājā vieta. Tas ir saistīts arī ar augšējās daļas slodzi, parasti slodze ir lielāka, ja tā pārsniedz 3, tā ir lielāka, ja tā pārsniedz 5, un, ja tā pārsniedz 10, tas nav normāli, un servera stāvoklis ir ļoti bīstams. Augšējā slodze ir līdzīga rindai sekundē. Ja darbojošā rinda ir pārāk liela, tas nozīmē, ka jūsu CPU ir aizņemts, kas parasti izraisa lielu CPU lietojumu.

bTas nozīmē bloķētu procesu, tas nav daudz ko teikt, process ir bloķēts, visi saprot.

swpdJa izmantotās virtuālās atmiņas lielums ir lielāks par 0, tas nozīmē, ka jūsu mašīnai ir nepietiekama fiziskā atmiņa, un, ja tas nav programmas atmiņas noplūdes cēlonis, tad ir pienācis laiks atjaunināt atmiņu vai migrēt atmiņu patērējošos uzdevumus uz citu mašīnu.

bez maksas   Brīvās fiziskās atmiņas lielums, mana mašīnas atmiņa kopumā ir 8G, bet atlikušie 3415M.

buff   Linux / Unix sistēma tiek izmantota, lai saglabātu, kāds saturs direktorijā, atļaujas utt. kešatmiņa, es droši vien aizņem vairāk nekā 300M šajā mašīnā

kešatmiņakešatmiņa tiek tieši izmantota, lai atcerētos failus, kurus mēs atveram, buferizētu failus, es savā mašīnā aizņemu vairāk nekā 300 miljonus (šeit ir gudra lieta Linux / Unix, ņemiet daļu no brīvās fiziskās atmiņas, lai kešatmiņā saglabātu failus un direktorijus, lai uzlabotu programmas izpildes veiktspēju, kad programma izmanto atmiņu, buferis / kešatmiņa tiks izmantota ātri.) )

si  Ja šī vērtība ir lielāka par 0, tas nozīmē, ka fiziskā atmiņa nav pietiekama vai atmiņa ir noplūdusi. Manai mašīnai ir daudz atmiņas, un viss ir kārtībā.

tātad  Virtuālajā atmiņā ierakstītā diska lielums sekundē, ja šī vērtība ir lielāka par 0, tāds pats kā iepriekš.

bi  Bloku aprīkojumsSekundē saņemto bloku skaits, šeit bloka ierīce attiecas uz visiem diskiem un citām bloku ierīcēm sistēmā, noklusējuma bloka lielums ir 1024baiti, man mašīnā nav nekādas IO darbības, tāpēc tas vienmēr ir bijis 0, bet es to esmu redzējis mašīnās, kas apstrādā lielu datu apjomu (2-3T), var sasniegt 140000 / s, un diska rakstīšanas ātrums ir gandrīz 140M sekundē

boBloku ierīces sekundē nosūtīto bloku skaits, piemēram, lasot failu, bo ir lielāks par 0. bi un bo parasti ir tuvu 0, pretējā gadījumā IO ir pārāk bieži un ir jāpielāgo.

RīgāCPU pārtraukumu skaits sekundē, ieskaitot laika pārtraukumus

csKonteksta slēdžu skaits sekundē, piemēram, kad mēs izsaucam sistēmas funkciju, mums ir jāpārslēdz konteksti un pavedienu pārslēgšanaProcesa kontekstsPiemēram, tīmekļa serveros, piemēram, Apache un nginx, mēs parasti veicam veiktspējas testus ar tūkstošiem vai pat desmitiem tūkstošu vienlaicīgumu, un tīmekļa servera izvēles procesu var samazināt par procesa vai pavediena maksimumu, stresa testu, līdz cs līdz salīdzinoši nelielai vērtībai, procesu un pavedienu skaits ir piemērotāka. Sistēmas izsaukumi ir arī tādi paši, katru reizi, kad tiek izsaukta sistēmas funkcija, mūsu kods nonāks kodola telpā, kā rezultātā notiek konteksta pārslēgšana, kas ir ļoti resursu patērējoša, un mums jācenšas izvairīties no biežiem sistēmas funkciju izsaukumiem. Pārāk daudz konteksta slēdžu nozīmē, ka lielākā daļa jūsu CPU tiek izšķērdēta konteksta pārslēgšanai, kā rezultātā CPU mazāk laika nopietnām lietām darīt, un CPU netiek pilnībā izmantots, kas nav ieteicams.

mumslietotājsProcesora laiksEs reiz redzēju, ka ASV bija tuvu 100 un r skriešanas rinda sasniedza 80 serverī, kas ļoti bieži veica šifrēšanu un atšifrēšanu (mašīna tika testēta stresa testā, un veiktspēja nebija laba).

syJa sistēmas CPU laiks ir pārāk liels, tas nozīmē, ka sistēmas izsaukumi ir gari, piemēram, biežas IO operācijas.

Id  Dīkstāves CPU laiks, vispārīgi runājot, id + us + sy = 100, parasti es domāju, ka id ir dīkstāves CPU lietojums, us ir lietotāja CPU lietojums, sy ir sistēmas CPU lietojums.

SvarsPagaidiet IO CPU laiku.







Iepriekšējo:Piemīlīgs
Nākamo:Jūrmala ir jauka
Publicēts 19.10.2014 19:40:57 |
Es nevaru saprast
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com