Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9822|Відповідь: 1

Детальне пояснення команди Linux vmstat на практиці

[Копіювати посилання]
Опубліковано 19.10.2014 19:36:48 | | |

Команда vmstat — це найпоширеніший інструмент моніторингу Linux/Unix, який відображає значення стану сервера у певний проміжок часу, включаючи значення сервераВикористання процесора, використання пам'яті, обмін віртуальною пам'яттю, читання та запис IO. Ця команда — моя улюблена команда для перевірки Linux/Unix, одна з них — підтримка Linux/Unix, а інша — що порівняно з верхньою я бачу завантаження процесора, пам'яті та виводу всього комп'ютера, а не лише завантаження процесора та пам'яті кожного процесу (різні сценарії використання).

Зазвичай використання інструменту vmstat здійснюється за допомогою двох чисельних параметрів: перший параметр — кількість часових інтервалів, одиниця — секунди, а другий — кількість вибірок, наприклад:


root@ubuntu:~# vmstat 2 1
Procs -----------Memory---------- ---swap-- -----Io---- -system-- ----CPU----
r b swpd free buff 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 free buff 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: частину вільної фізичної пам'яті кешувати файли та каталоги, щоб покращити продуктивність виконання програми, коли програма використовує пам'ять, буфер/кеш буде використовуватися швидко). )

si  Якщо це значення більше за 0, це означає, що фізичної пам'яті недостатньо або пам'ять втрачається. У моєму комп'ютері достатньо пам'яті, і все працює нормально.

Отже  Розмір диска, записаного у віртуальну пам'ять за секунду, якщо це значення більше 0, дорівнює тому, що й вище.

bi  Блочне обладнанняКількість блоків, отриманих за секунду, тут блок-пристрій означає всі диски та інші блок-пристрої в системі, стандартний розмір блоку — 1024 байти, у мене немає операцій введення на машині, тому він завжди був нуль, але я бачив це на машинах, які обробляють великі обсяги даних (2-3T), можуть досягати 140000/с, а швидкість запису на диск майже 140M на секунду

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

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

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

МикористувачЧас процесораЯ якось бачив, що US був близько 100, а черга R, що запускається на сервері, який часто займався шифруванням і розшифруванням (машину тестували під стресом, і продуктивність була низькою).

syЯкщо робочий час системи надто великий, це означає, що системні виклики довгі, наприклад, часті операції введення вводу.

id  Зазвичай час простою процесора, загалом, id + us + sy = 100, загалом id — це використання процесора в режимі простою, us — це використання процесора користувача, sy — використання системного процесора.

wtЗачекайте на час IO процесора.







Попередній:Симпатичний
Наступний:Набережна гарна
Опубліковано 19.10.2014 19:40:57 |
Я не можу зрозуміти
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com