slacknews.org Всичко за Slackware

4юли/100

Системни статистики с vmstat

vmstat е позната като програма за показване на статистики за виртуалната памет. Ние обаче може да я използваме и за други статистики.

Освен статистики за паметта, може да се изведат статистики за процесора, IO, Swap, Proc, системните прекъсвания. vmstat се използва много лесно. Без никакви допълнителни опции можем да я ползваме така:

vmstat [delay] [counts]

Нека да предположим, че искате да разпечатвате информация на екрана всяка секунда, 60 пъти (искате да вземете статистиките в продължение на една минута през интервал от 1 секунда):

vmstat 1 60

Изхода от командата ще изглежда така:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 3  0  57768   5712   4696 174692    0    0     0   496  458 1636 19  2 77  2
 2  0  57768   5712   4696 174692    0    0     0     0  466 1687 25  1 74  0
 0  0  57768   5712   4696 174704    0    0     0     0  438  990  7  1 92  0
 2  0  57768   5712   4696 174704    0    0     0     0  459 1020  6  0 94  0
 2  0  57768   5712   4696 174704    0    0     0     0  429  965  7  0 93  0
 2  0  57768   5712   4704 174696    0    0     0    40  455 1039  3  0 97  0
...

Нека да погледнем към полетата:

Описание на полетата
 Procs
 r: Брой процеси, които чакат да се изпълнят.
 b: Брой процеси, които спят и не могат да се прекъсват.

   Memory
 swpd: Количеството виртуална памет, което се използва.
 free: Количество свободна памет.
 buff: Памет използвана за буфери.
 cache: Памет използвана за кеш.
 inact: Неактивна памет. (-a option)
 active: Активна памет. (-a option)

   Swap
 si: Показва колко виртуална памет е прочетена от диска (/s).
 so: Покзва колко виртуална памет е записана на диска. (/s).

   IO
 bi: Блокове прочетени от блоково устройство (блокове/s).
 bo: Блокове записани на блоково устройство (блокове/s).

   System
 in: Брой на прекъсванията в секунда, включително и прекъсванията за часовника.
 cs: Брой на смяната на контекста за секунда.

   CPU
Това са проценти от цялото време на процесора.
 us: Време, през което се изпълнява код, който не принадлежи на ядрото.
 sy: Време, през което се изпълнява код на ядрото. (системно време)
 id: Време, през което не се изпълнява нищо. Преди ядро 2.5.41, това включва и IO-wait времето.
 wa: Време, през което се чака за IO операции. Преди ядро 2.5.41, се включва в id.
 st: Време което е използвано от виртуалната машина.Преди ядро 2.6.11, не е установена стойност.

Обикновено се интересувам главно от две полета. Под Memory, полето free, което покзва колко неизползвана памет е останала. Под CPU, полето id, което показва колко е натоварен процесора. Ако стойностите в free или id стане много малка, това означава, че системата се е натоварила и трябва да се провери какво се случва.

vmstat е много удобна когато трябва да се прави отдалечено наблюдение. Може да се използва заедно със ssh по следния начин:

ssh username@domain.com "vmstat 60 99999"

vmstat не разпечатва датата или времето. Ако искате да си направите лог на статистиките заедно с времето, когато са взети, може да го постигнете по следния начин:

vmstat 1 1;for ((;;));do date; vmstat 10 2 | tail -n1;done

Командата ще разпечатва статистики на всеки 10 секунди.

Изхода ще изглежда по подобен начин.

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0  57644   6096   8080 160828    0    1    30    31  441  137 11  1 86  1
Sat Dec  8 12:51:40 MYT 2007
 0  0  57644   6152   8092 160828    0    0     0    38  449  989  8  0 92  0
Sat Dec  8 12:51:50 MYT 2007
 0  0  57644   5864   8108 160828    0    0     0     8  443  980  5  0 95  0
Sat Dec  8 12:52:00 MYT 2007
...

vmstat може да извежда и статистики за използването на диска и др. Консултирайте се с man страниците за повече информация.

Possibly Related Posts: