Системни статистики с 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:
- Оптимизиране на Firefox с tmpfs
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс