Чому б "реальний" час був набагато більшим, ніж "користувач" та "сис" час разом?


19

Я виконую і timeбагато команд (тобто nslookup) через, SSHі збираю загальний час, необхідний для завершення послуги (тобто DNS ). Тому я збираю час userі sysчас, коли realчас відлічує час, коли мій процес блокується, який мені не потрібен ... Я думаю.

Але деякі мої тести мали такі результати:

real 3m22.033s
user 0m0.009s
sys 0m0.014s

Я виконую ці тести на обмежених ресурсах linux box, але все-таки realчас значно більший. Чи це лише вказуватиме на те, що вікно ДУЖЕ зайняте виконанням різних процесів? Чи все-таки правильно підсумовувати час userі sysзнати, скільки зайняла послуга?

Відповіді:


22

Реальний - це загальний час, необхідний для завершення процесу (тобто різниця між початковим часом та часом зупинки):

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

У цьому списку користувач та sys посилаються на час, що проводився відповідно в режимі користувача та режимі ядра. Сюди не входить час, який проводиться під час неактивності, у сплячому стані. Процес засинає, коли він навмисно просив його, або коли він чекає на доступ IO (мережевий доступ / доступ до диска / взаємодія з користувачем) або очікує, що інші процеси припиняться, через відсутність процесора, коли система знаходиться під дуже великим навантаженням тощо.

Як правило, якщо ви телефонуєте timeв wget, реальної буде відповідати часу завантаження приймає, користувач повинен бути незначним (якщо wgetне просять виконати інтенсивну обробку даних), SYS має бути невеликим (яке - той час може бути витрачено , щоб мати справу з буферами, рухаючись назад даних і далі від простору ядра до простору користувача.)


Вибачте, що я додав wgetдо запитання, я насправді цього не роблю, timeале дякую за пояснення. Скажімо, що realвключає в себе час блокування, наприклад, очікування мережевого вводу-виводу, змушує мене також включати цей час, оскільки я насправді тестую мережу. Дякую.
Мухаммед Гелбана

Підтвердьте, будь ласка, наступне, щоб перевірити працездатність мережі та чутливість запитуваної машини, будь то DNSсервер чи пінг-машина, чи достатньо лише виміряти realчас?
Мухаммед Гелбана

@MuhammadGelbana: Цей реальний час - це лише секундомір, нічого більше. Якщо ви відпустите ping3 хвилини 22, він повернеться за 3 хвилини 22. Це просто марно в цьому випадку (і насправді це марно як орієнтир більшість часу, результат залежить від зовнішніх факторів).
Стефан Гіменез

Спасибі. Але чи знаєте ви, чому це не закінчилось? Я прочитав, що за замовчуванням час очікування nslookupстановить 5 секунд!
Мухаммед Гельбана
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.