Czym konkretnie są wall-clock-time, user-cpu-time i system-cpu-time w Uniksie?

Mogę zgadnąć na podstawie nazw, ale czym konkretnie są wall-clock-time, user-cpu-time i system-cpu-time w Uniksie?

Czy czas user-cpu to ilość czasu spędzonego na wykonywaniu kodu użytkownika, podczas gdy czas kernel-cpu to ilość czasu spędzonego w jądrze z powodu potrzeby operacji uprzywilejowanych (takich jak IO to disk)?

W jakiej jednostce czasu jest ten pomiar.

I czy czas ścienny to naprawdę liczba sekund, które proces spędził na procesorze, czy tylko nazwa wprowadza w błąd?

Author: John Humphreys - w00te, 2011-09-07

4 answers

Zegar Ścienny to czas, który zegar na ścianie (lub stoper w ręku) mierzyłby jako upłynął między rozpoczęciem procesu a "teraz".

Czas użytkownika-procesora i czas systemu-procesora są prawie tak, jak mówiłeś - ilość czasu spędzonego w kodzie użytkownika i ilość czasu spędzonego w kodzie jądra.

Jednostki są sekundami (i subsekundami, które mogą być mikrosekundami lub nanosekundami).

Czas zegara ściennego nie jest liczbą sekund, jaką ma proces spędzony na CPU; jest to czas, który upłynął, łącznie z czasem spędzonym na czekaniu na jego włączenie NA CPU(podczas gdy inne procesy zaczynają działać).

 103
Author: Jonathan Leffler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 14:53:54

Zegar Ścienny czas: czas, który upłynął zgodnie z wewnętrznym zegarem komputera, który powinien pasować do czasu w świecie zewnętrznym. Nie ma to nic wspólnego z użytkowaniem procesora; jest podane w celach informacyjnych.

Czas procesora użytkownika i czas systemowy: dokładnie to, co myślisz. Wywołania systemowe, które obejmują wywołania We/Wy, takie jak read, write, itd. są wykonywane przez przeskoczenie do kodu jądra i wykonanie tego.

Jeśli zegar ścienny czas CPU czas, czekasz na dysk, sieć lub inne urządzenia.

Wszystkie są mierzone w sekundach, zgodnie zSI .

 27
Author: Fred Foo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 14:52:52

Zegar Ścienny czas jest dokładnie tym, co mówi, czas upłynął mierzony przez zegar na ścianie (lub zegarek Na Rękę)

User cpu time to czas spędzony w "user land", czyli czas spędzony na procesach spoza jądra

Czas procesora systemowego to czas spędzony w jądrze, zwykle czas poświęcony na obsługę wywołań systemowych.

 6
Author: ennuikiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 14:53:46
time [WHAT-EVER-COMMAND]

real    7m2.444s
user    76m14.607s
sys 2m29.432s

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24

Zegar rzeczywisty lub ścienny

Real 7m2. 444s

W systemie z 24-rdzeniowym procesorem procesor cmd/trwał ponad 7 minut. To poprzez wykorzystanie możliwie największej paralelizmu ze wszystkimi podanymi rdzeniami.

User

Użytkownik 76m14. 607s

Cmd/proces wykorzystał tyle czasu procesora. Innymi słowy, na maszynie z jednordzeniowym procesorem, rzeczywisty i użytkownik będzie prawie równy, więc ta sama Komenda zajmie ~76 min.

Sys

Sys 2m29.432s

Jest to czas potrzebny jądrowi Na wykonanie wszystkich podstawowych / systemowych operacji do uruchomienia tego cmd, łącznie z przełączaniem kontekstu, alokacją zasobów itp.

Uwaga: przykład zakłada, że Twoje polecenie wykorzystuje równoległość / wątki.

Szczegółowa strona podręcznika: https://linux.die.net/man/1/time

 2
Author: Sankarganesh Eswaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 04:08:51