Pourquoi le temps «réel» serait-il beaucoup plus élevé que les temps «utilisateur» et «sys» combinés?

19

J'exécute et de timenombreuses commandes (ie nslookup) à travers SSHet je collecte le temps total nécessaire pour que le service implicite se termine (ie DNS ). Je collectionne donc lesusersys temps et comme le realtemps compte le temps où mon processus bloque dont je n'ai pas besoin ... Je suppose.

Mais certains de mes tests ont donné des résultats en tant que tels:

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

J'exécute ces tests sur des boîtiers linux à ressources limitées mais le realtemps est encore très long. Cela indiquerait-il seulement que la boîte est TRÈS occupée à exécuter différents processus? Est-il toujours correct d'ajouter les heures useret les sysheures pour savoir combien le service a pris?

Muhammad Gelbana
la source

Réponses:

22

Réel est le temps total nécessaire pour que le processus se termine (c'est-à-dire la différence entre l'heure de démarrage et l'heure d'arrêt):

$ time sleep 3

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

Dans cette liste, user et sys font référence au temps passé respectivement en mode utilisateur et en mode noyau. Ceux - ci n'incluent pas le temps passé en étant inactif, en dormant état de . Un processus se met en veille lorsqu'il le demande délibérément, ou lorsqu'il attend que les E / S (mise en réseau / accès au disque / interaction avec l'utilisateur) soient disponibles, ou en attente de la fin d'autres processus, faute de CPU disponible lorsque le système est sous une charge très élevée , etc.

En règle générale, si vous appelez timele wget, réel correspondent à la volonté du temps le téléchargement prend, l' utilisateur devrait être négligeable ( à moins wgetest invité à effectuer un traitement intensif de données), sys devrait être de petite taille ( un peu de temps peut être dépensé pour traiter les tampons, les données en mouvement de retour de l'espace du noyau vers l'espace utilisateur.)

Stéphane Gimenez
la source
Je suis désolé d'avoir ajouté wgetà la question, je ne le fais pas time, mais merci pour l'explication. Dire que cela realinclut des temps de blocage tels que l'attente des E / S réseau me fait penser à inclure ce temps aussi parce que je teste réellement le réseau. Je vous remercie.
Muhammad Gelbana
Pourriez-vous s'il vous plaît confirmer ce qui suit, pour tester les performances du réseau et la réactivité de la machine interrogée, qu'il s'agisse d'un DNSserveur ou d'une machine ping, est-ce suffisant pour mesurer uniquement le realtemps?
Muhammad Gelbana
@MuhammadGelbana: Ce temps réel n'est qu'un chronomètre, rien de plus. Si vous laissez pingcourir pendant 3 minutes 22, il retournera 3 minutes 22. C'est juste inutile dans ce cas (et en fait c'est inutile comme référence la plupart du temps, le résultat dépend de facteurs externes).
Stéphane Gimenez
Merci. Mais sauriez-vous pourquoi il n'a pas expiré? J'ai lu que le délai d'attente par défaut nslookupest de 5 secondes!
Muhammad Gelbana du