GNU/Linux >> Znalost Linux >  >> Linux

Jaké jsou dostupné metody pro získání využití CPU v příkazovém řádku Linuxu?

Jak řekli jiní, nejlepší způsob je pravděpodobně top . Potřebuje trochu doladit a trochu analyzovat, ale můžete jej získat tak, aby vám poskytl aktuální využití CPU v procentech.

top rozdělí využití CPU mezi uživatele, systémové procesy a nice procesy, chceme součet všech tří. Můžeme tedy spustit top v b atch mód, který nám umožňuje analyzovat jeho výstup. Nicméně, jak je zde vysvětleno, 1. iterace top -b vrací procenta od spuštění, potřebujeme proto alespoň dvě iterace (-n 2 ), abyste získali aktuální procento. Pro urychlení můžete nastavit d prodleva mezi iteracemi na 0.01 . Nakonec grep řádek obsahující procenta CPU a poté použijte gawk shrnout uživatelské, systémové a pěkné procesy:

    top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | gawk '{print $2+$4+$6}'
        -----  ------   -----------    ---------   ----------------------
          |      |           |             |             |------> add the values
          |      |           |             |--> keep only the 2nd iteration
          |      |           |----------------> keep only the CPU use lines
          |      |----------------------------> set the delay between runs
          |-----------------------------------> run twice in batch mode

Myslel jsem, že tyto informace můžete získat také prostřednictvím ps -o pcpu ax přidáním % využití každého běžícího procesu. Bohužel, jak je vysvětleno zde, ps "vrací procento času stráveného během celé životnosti procesu", což není to, co potřebujete.

UPRAVIT

Na základě vašeho komentáře vaše verze top se liší od mého a měli byste místo toho použít toto:

top -bn 2 -d 0.01 | grep '^Cpu.s.' | tail -n 1 | gawk '{print $2+$4+$6}'

A abyste se vyhnuli problémům s lokalizací, nastavte národní prostředí na C:

LC_ALL=C top -bn 2 -d 0.01 | grep '^Cpu.s.' | tail -n 1 | gawk '{print $2+$4+$6}'

sar je definitivní způsob, jak to udělat. Například sar -u vypíše něco takového:

08:30:01 AM       CPU     %user     %nice   %system   %iowait     %idle
08:40:01 AM       all      6.94      0.00      1.77      4.92     86.36
08:50:01 AM       all      5.73      0.00      2.31     12.72     79.24
09:00:01 AM       all      5.95      0.00      2.58     18.36     73.11
09:10:01 AM       all      6.88      0.00      2.22     17.44     73.45
09:20:01 AM       all      8.61      0.00      2.68     27.93     60.78

Neříkáte, který Linux používáte, ale pro CentOS/RedHat musíte nainstalovat sysstat a myslím, že je to stejné na Debianu/Ubuntu.

Můžete také použít sar ke shromažďování statistik ad hoc :

sar -o /tmp/sar.out 60 600

Bude sbírat statistiky každých 60 sekund 600krát, tedy 600 minut.


Linux
  1. Generujte hesla na příkazovém řádku Linuxu

  2. Použití síly na příkazovém řádku Linuxu

  3. Mít krávu na příkazovém řádku Linuxu

  1. Přihlaste se do příkazového řádku Linuxu

  2. Udělejte více na příkazovém řádku Linuxu s GNU Parallel

  3. Jaké jsou vaše oblíbené funkce nebo triky příkazového řádku?

  1. 8 tipů pro příkazový řádek Linuxu

  2. Získejte rozlišení displeje z příkazového řádku pro Linux Desktop

  3. Linux top command:What are us, sy, ni, id, wa, hi, si and st (pro využití CPU)?