Как да използвате командата vmstat в Linux

Подкана за терминал на десктоп Linux

Фатмавати Ахмад Заенури/Shutterstock.com



Вашият компютър с Linux или macOS използва виртуална памет. Открийте как се отразява на използването на физическата памет, процесора и ресурсите на твърдия диск от вашата система.

Какво е виртуална памет?

Вашият компютър е снабден с ограничено количество физическа памет, наречена оперативна памет (RAM). Тази RAM памет трябва да се управлява от ядрото и да се споделя между операционната система и всички приложения, които се изпълняват. Ако тези комбинирани изисквания изискват повече памет, отколкото е физически инсталирана във вашия компютър, какво може да направи ядрото?





Linux и Подобно на Unix операционни системи като macOS могат да използват място на вашия твърд диск, за да им помогнат да управляват нуждите от памет. Запазена област от пространство на твърдия диск, наречена swap space, може да се използва, сякаш е разширение на RAM. Това е виртуална памет.

Ядрото на Linux може да запише съдържанието на блок памет в пространство за размяна и да освободи този регион на RAM за използване от друг процес. Разменената – наричана още изведена – памет може да бъде извлечена от пространството за размяна и възстановена в RAM, когато е необходимо.



Разбира се, скоростта на достъп до паметта за извеждане на страници е по-бавна от тази на паметта, съхранявана в RAM. И това не е единственият компромис. Докато виртуалната памет предоставя начин за Linux да управлява своите нужди от памет, използването на виртуална памет натоварва допълнително другаде на компютъра.

Реклама

Вашият твърд диск трябва да извършва повече четене и запис. Ядрото — и следователно процесорът — трябва да върши повече работа, тъй като разменя паметта, заменя паметта и поддържа всички плочи да се въртят, за да задоволят нуждите от памет на различните процеси.

Linux ви предоставя начин да наблюдавате цялата тази дейност под формата на |_+_| команда, която докладва за статистика за виртуална памет .



Командата vmstat

Ако напишете |_+_| като команда без параметри, тя ще ви покаже набор от стойности. Тези стойности са средни стойности за всяка от статистическите данни от последното рестартиране на компютъра ви. Тези цифри не са моментна снимка на стойностите в момента.

vmstat

Показва се кратка таблица със стойности.

Има колони, озаглавени Procs, Memory, Swap, IO, System и CPU. Последната колона (най-дясната колона) съдържа данните, свързани с процесора.

Ето списък на елементите от данни във всяка колона.

Proc

  • r : Броят на изпълняваните процеси. Това са процеси, които са стартирани и или се изпълняват, или чакат следващия си разрязан във времето изблик от цикли на процесора.
  • б : Броят на процесите в непрекъсваем сън. Процесът не спи, изпълнява блокиращо системно повикване и не може да бъде прекъснат, докато не завърши текущото си действие. Обикновено процесът е драйвер на устройство, който чака някакъв ресурс да се освободи. Всички прекъсвания на опашката за този процес се обработват, когато процесът възобнови обичайната си дейност.

Памет

  • swpd : количеството използвана виртуална памет. С други думи, колко памет е разменена.,
  • Безплатно : количеството свободна (в момента неизползвана) памет.
  • buff : количеството памет, използвана като буфери.
  • кеш : количеството памет, използвана като кеш.

Размяна

  • да : Количество разменена виртуална памет в от суап пространство.
  • така : Количество разменена виртуална памет навън за размяна на пространството.

аз

  • с : Блокове, получени от блоково устройство. Броят на блоковете данни, използвани за размяна на виртуална памет обратно в RAM.
  • бо : Блокове, изпратени до блоково устройство. Броят на блоковете данни, използвани за размяна на виртуална памет от RAM и в пространство за размяна.

Система

  • в : Броят на прекъсванията в секунда, включително часовника.
  • cs : Броят превключвания на контекста в секунда. Превключване на контекста е, когато ядрото превключва от обработка в системен режим към обработка в потребителски режим.

процесор

Всички тези стойности са проценти от общото време на процесора.

  • нас : Време, прекарано в изпълнение на код, различен от ядрото. Тоест колко време е изразходвано за обработка на потребителско време и за обработка на приятно време.
  • неговата : Време, прекарано в изпълнение на кода на ядрото.
  • документ за самоличност : Време, прекарано на празен ход.
  • wa : Време, прекарано в чакане на вход или изход.
  • ул : Време, откраднато от виртуална машина. Това е времето, в което една виртуална машина трябва да изчака хипервизорът да приключи с обслужването на други виртуални машини, преди да може да се върне и да обслужва тази виртуална машина.

Използване на времеви интервал

Можем да имаме |_+_| предоставяйте редовни актуализации на тези цифри, като използвате |_+_| стойност. |_+_| стойността се предоставя в секунди. За да актуализираме статистиката на всеки пет секунди, ще използваме следната команда:

vmstat

Реклама

На всеки пет секунди |_+_| ще добави още един ред данни към таблицата. Ще трябва да натиснете Ctrl+C, за да спрете това.

Използване на стойност на броене

Използване на твърде ниско |_+_| стойност ще натовари допълнително вашата система. Ако трябва да имате бързи актуализации, за да се опитате да диагностицирате проблем, се препоръчва да използвате |_+_| стойност, както и |_+_| стойност.

|_+_| стойността казва |_+_| колко актуализации да изпълни, преди да излезе и да ви върне към командния ред. Ако не предоставите |_+_| стойност, |_+_| ще работи, докато не бъде спрян с Ctrl+C.

Да има |_+_| предоставяйте актуализация на всеки пет секунди — но само за четири актуализации — използвайте следната команда:

vmstat

След четири актуализации |_+_| спира от само себе си.

Смяна на единиците

Можете да изберете паметта и статистиката за размяната да се показват в килобайти или мегабайти, като използвате |_+_| опция (единица-знак). Това трябва да бъде последвано от едно от |_+_| , |_+_| , |_+_| или |_+_|. Те представляват:

  • да се : 1000 байта
  • ДА СЕ : 1024 байта
  • м : 1000000 байта
  • М : 1048576 байта
Реклама

За да актуализирате статистиката на всеки 10 секунди, като статистиката за паметта и размяната се показва в мегабайти, използвайте следната команда:

delay

Статистиката за паметта и замяната вече се показва в мегабайти. Имайте предвид, че |_+_| опцията не засяга статистиката на IO блока. Те винаги се показват на блокове.

Активна и неактивна памет

Ако използвате |_+_| (активна) опция колоните buff и кеш паметта се заменят с неактивни и активни колони. Както биха предположили, те показват количеството неактивна и активна памет.

За да видите тези две колони вместо колоните buff и cache, включете |_+_| опция, както е показано:

delay

Неактивните и активните колони са засегнати от опцията -S (единичен знак).

Вилици

|_+_| switch показва броя на разклоненията, които са се случили след стартиране на компютъра.

Реклама

С други думи, това показва броя на задачите, които са стартирани (и за по-голямата част от тях са затворени отново), след като системата е стартирана. Всеки процес, стартиран от командния ред, би увеличил тази цифра. Всеки път, когато дадена задача или процес създава или клонира нова задача, тази цифра ще се увеличава.

vmstat

Дисплеят на вилиците не се актуализира.

Показване на Slabinfo

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

Както можете да си представите, ядрото разпределя и освобождава памет отново и отново за многото различни типове обекти с данни, които трябва да обработва. За да направи това възможно най-ефективно, той използва система, наречена плочи. Това е форма на кеширане.

Паметта, разпределена, използвана и вече не е необходима за конкретен тип обект с данни на ядрото, може да се използва повторно за друг обект с данни от същия тип, без паметта да бъде освободена и преразпределена. Мислете за плочите като предварително разпределени, направени по мярка, сегменти от RAM за собствените нужди на ядрото.

За да видите статистиката за плочите, използвайте |_+_| опция (плочи). Ще трябва да използвате |_+_| и ще бъдете подканени за вашата парола. Тъй като изходът може да бъде доста дълъг, ние го предаваме чрез |_+_|.

delay

Изходът има пет колони. Това са:

  • Кеш : Име на кеша.
  • никой : Броят на активните в момента обекти в този кеш.
  • обща сума : Общият брой налични обекти в този кеш.
  • размер : Размерът на всеки обект в кеша.
  • страници : Общият брой страници от паметта, които имат (поне) един обект, който в момента е свързан с този кеш.

Натиснете |_+_| да напусна |_+_|.

Показване на броячи на събития и статистика на паметта

За да покажете страница с броячи на събития и статистика на паметта, използвайте |_+_| опция (статистика). Обърнете внимание, че е с малка буква.

count

Реклама

Въпреки че отчитаните статистически данни са до голяма степен същите като информацията, която съставя стандартното |_+_| изход, някои от тях са разделени по-подробно.

Например, изходът по подразбиране комбинира както хубавото, така и неподходящото потребителско CPU време в колоната us. Дисплеят -s (статистика) изброява тези статистики отделно.

изход от vmstat -s в прозореца на терминала

Показване на дискова статистика

Можете да получите подобен списък със статистики на диска, като използвате |_+_| опция (диск).

delay

За всеки диск се показват три колони, това са Reads, Writes и IO.

IO е най-дясната колона. Имайте предвид, че сек колоната в IO се измерва в секунди, но базираната на времето статистика в колоните за четене и запис се измерва в милисекунди.

Ето какво означават колоните:

Чете

  • обща сума : Общият брой четения на диска.
  • обединени : Общият брой групирани четения.
  • сектори : Общият брой на прочетените сектори.
  • Госпожица : Общият брой на времето в милисекунди, които са били използвани за четене на данни от диска.

пише

  • обща сума : Общият брой записи на диск.
  • обединени : Общият брой групирани записи.
  • сектори : Общият брой на записаните сектори.
  • Госпожица = Общият брой на времето в милисекунди, което е било използвано за запис на данни на диска.

аз

  • курс: Брой текущи четения или записи на диск.
  • сек: Време, прекарано в секунди за всяко текущо четене или запис.

Показване на обобщена дискова статистика

За да видите бърз дисплей на обобщена статистика за вашата дискова активност, използвайте |_+_| опция (дискова сума). Обърнете внимание на главните букви D.

count

Реклама

Броят на дисковете може да изглежда необичайно висок. Компютърът, използван за изследване на тази статия, работи с Ubuntu. С Ubuntu всеки път, когато инсталирате приложение от Snap, a |_+_| се създава псевдо-файлова система, която е прикачена към /dev/loop устройство.

Досадно е, че тези записи на устройства се отчитат като устройства с твърд диск от много от командите и помощните програми на Linux.

Показване на статистически данни за дяловете

За да видите статистика, свързана с конкретен дял, използвайте |_+_| (partition) опция и предоставете идентификатора на дяла като параметър на командния ред.

Тук ще разгледаме дяла |_+_|. Цифрата една показва, че това е първият дял на устройството |_+_|, което е основният твърд диск за този компютър.

vmstat

Върнатата информация показва общия брой четения и записи на диск към и от този дял, както и броя на секторите, включени в действията за четене и запис на диск.

Поглед под капака

Винаги е добре да знаете как да вдигнете капака и да видите какво се случва отдолу. Понякога ще се опитвате да решите проблема, понякога това ще бъде от интерес, защото искате да знаете как работи компютърът ви.

|_+_| може да ви предостави много полезна информация. Сега знаете как да получите достъп до него и какво означава това. И предупреденото е въоръжено — когато трябва да запретнете ръкави и да направите някаква диагностика, ще знаете, че имате |_+_| на твоя страна.

Linux команди
Файлове катран · pv · котка · tac · chmod · сцепление · разл · sed · С · човек · pushd · popd · fsck · тестов диск · сек · fd · пандока · CD · $PATH · awk · присъединяване · jq · сгънете · уникален · journalctl · опашка · състояние · ls · fstab · изхвърли · по-малко · chgrp · chown · rev · виж · струни · Тип · преименувайте · цип · разархивирайте · монтиране · umount · Инсталирай · fdisk · mkfs · rm · rmdir · rsync · df · gpg · ние · нано · mkdir · от · вътрешен · кръпка · преобразувам · rclone · накъсайте · SRM
процеси псевдоним · екран · връх · хубаво · renice · напредък · strace · система · tmux · chsh · история · в · партида · Безплатно · който · dmesg · потребителски мод · п.с · chroot · xargs · tty · мизичко · lsof · vmstat · изчакване · стена · да · убиват · сън · sudo · неговата · време · groupadd · потребителски мод · групи · lshw · изключвам · рестартирайте · Спри се · изключване · passwd · lscpu · crontab · дата · bg · fg
Работа в мрежа netstat · пинг · трасиране · ip · ss · кой е · fail2ban · bmon · Вие · пръст на ръката · nmap · ftp · къдрица · wget · Кой · кой съм аз · В · iptables · ssh-keygen · ufw

СВЪРЗАНИ: Най-добрите Linux лаптопи за разработчици и ентусиасти

ПРОЧЕТЕТЕ СЛЕДВАЩО Снимка на профила на Дейв Маккей Дейв Маккей
Дейв Маккей за първи път използва компютри, когато перфорираната хартиена лента беше на мода и оттогава той програмира. След повече от 30 години в ИТ индустрията, той вече е технологичен журналист на пълен работен ден. По време на кариерата си той е работил като програмист на свободна практика, мениджър на международен екип за разработка на софтуер, ръководител на проекти за ИТ услуги и, последно, като служител по защита на данните. Неговото писане е публикувано от howtogeek.com, cloudsavvyit.com, tenterpriser.com и opensource.com. Дейв е евангелист на Linux и привърженик на отворен код.
Прочетете пълната биография

Интересни Статии