Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 9822|Ответ: 1

Детальное объяснение команды Linux vmstat на практике

[Скопировать ссылку]
Опубликовано 19.10.2014 19:36:48 | | |

Команда vmstat — самый распространённый инструмент мониторинга Linux/Unix, который отображает значения состояния сервера в определённый промежуток времени, включая значения сервераИспользование процессора, использование памяти, виртуальный обмен памятью, чтение и запись ввода-вывода. Эта команда — моя любимая команда для проверки Linux/Unix: одна из них — поддержка Linux/Unix, а другая — что по сравнению с верхней версией я вижу загрузку процессора, памяти и ввода-вывода всей машины, а не только использование процессора и памяти каждого процесса (разные сценарии использования).

Обычно использование инструмента vmstat осуществляется через два числовых параметра: первый параметр — это количество временных интервалов, единица — секунды, а второй — количество выборок, например:


root@ubuntu:~# vmstat 2 1
Procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU----
r b swpd бесплатный бафф 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 означает, что состояние сервера собирается раз в две секунды, а 1 — что состояние сервера собирается только один раз.

На самом деле, в процессе подачи заявки мы будем следить в течение определённого времени, и если не хотим отслеживать, можем просто завершить vmstat напрямую, например:


root@ubuntu:~# vmstat 2  
Procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU----
r b swpd бесплатный бафф 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

Это значит, что vmstat собирает данные каждые 2 секунды и продолжается, пока я не завершаю программу, а я завершаю программу после того, как собрал данные 5 раз здесь.

Хорошо, команда введена, теперь давайте начнём объяснять значение каждого параметра.

rЭто означает, что при запуске очереди (то есть сколько процессов действительно выделено процессору), сервер, который я тестировал, сейчас относительно простой, программ не работают, когда это значение превышает количество процессоров, возникает узкое место процессора. Это также связано с нагрузкой на верхнюю часть: обычно нагрузка выше, если превышает 3, выше, если превышает 5, а если превышает 10 — это ненормально, и состояние сервера очень опасно. Нагрузка верхней части схожа с текущей очередью в секунду. Если очередь слишком большая, это значит, что процессор занят, что обычно приводит к высокой загрузке процессора.

bЭто означает заблокированный процесс, это не так уж много, процесс заблокирован, все понимают.

SWPDЕсли размер используемой виртуальной памяти превышает 0, это означает, что у вашей машины недостаточно физической памяти, и если это не является причиной утечки памяти, то пора обновить память или перенести задачи, потребляющие память, на другую машину.

Бесплатно   Размер свободной физической памяти — 8G, а оставшиеся — 3415M.

Бафф   Система Linux/Unix используется для хранения того контента в каталоге, разрешения и т.д. кэша, я, наверное, занимаю более 300 миллионов на этой машине

КэшКэш напрямую используется для запоминания файлов, которые мы открываем, буферизации файлов, я занимаю более 300 миллионов на своей машине (вот умная идея Linux/Unix: часть свободной физической памяти для кэширования файлов и каталогов, чтобы повысить производительность выполнения программы, когда программа использует память, буфер/кэширование будет использоваться быстро). )

Си  Если это значение больше 0, это означает, что физической памяти недостаточно или память утекает. У моего компьютера достаточно памяти, и всё в порядке.

Так что  Размер диска, записанного в виртуальную память в секунду, если это значение больше 0, будет таким же, как и выше.

bi  Блочное оборудованиеКоличество полученных блоков в секунду — здесь блочное устройство относится ко всем дискам и другим блоковым устройствам в системе, размер блока по умолчанию — 1024 байта, у меня нет операций ввода на машине, поэтому всегда было 0, но я видел это на машинах, обрабатывающих большие объёмы данных (2-3 Т), которые могут достигать 140000/с, а скорость записи на диск почти 140М в секунду

боКоличество блоков, отправляемых блоковым устройством в секунду, например, при чтении файла, bo больше 0. bi и bo обычно близки к 0, иначе IO слишком частый и требует корректировки.

вКоличество прерываний в секунду процессора, включая временные прерывания

CSКоличество переключений контекста в секунду, например, когда мы вызываем системную функцию, нужно переключать контексты, и переключение потоковКонтекст процессаНапример, в веб-серверах, таких как Apache и nginx, мы обычно проводим тесты производительности с тысячами или даже десятками тысяч параллелей, и процесс выбора веб-сервера может быть снижен на пик процесса или потока, стресс-тест, пока cs не достигнет относительно небольшого значения, количество процессов и потоков становится более подходящим. Системные вызовы тоже одинаковы: каждый раз, когда вызывается системная функция, наш код попадает в пространство ядра, что приводит к переключению контекста, что очень ресурсоёмко, и нам следует стараться избегать частых вызовов системных функций. Слишком много переключений контекста означает, что большая часть вашего процессора тратит на переключение контекста, что снижает время для серьёзных задач, и процессор не полностью используется, что не рекомендуется.

СШАпользовательВремя процессораОднажды я видел, что в США было почти 100, а очередь на R достигла 80 на сервере, который часто занимался шифрованием и расшифровкой (машина была прошёл стресс-тест, и производительность была низкой).

syЕсли системное процессорное время слишком велико, это означает, что системные вызовы будут долгими, например, частые операции ввода.

идентификатор  Время простоя процессора, в общем, id + us + sy = 100, в целом я думаю, id — это использование CPU в простое, us — это использование CPU пользователя, sy — использование системного CPU.

wtЖдите время процессора ввода-вывода.







Предыдущий:Мило
Следующий:Побережье приятное
Опубликовано 19.10.2014 19:40:57 |
Я не могу понять
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com