user
En Bash, avec la commande time, à quoi correspond real, user et sys ?
alphonsio
  • real est le temps total écoulé entre le début et la fin de l'exécution de la commande.
  • user est le temps CPU utilisé par le programme.
  • sys est le temps CPU utilisé par le noyau du système

En Bash, lorsque l'on utilise la commande time, les trois valeurs affichées (real, user, sys) correspondent aux différents temps mesurés lors de l'exécution d'une commande.

Explication des trois valeurs :

1. real (temps réel ou wall-clock time)

  • C'est le temps total écoulé entre le début et la fin de l'exécution de la commande.
  • Il inclut tout, y compris les périodes d'attente (ex : latence réseau, attente d'entrée utilisateur, sleep, etc.).
  • Il est souvent supérieur à user + sys, car il inclut aussi le temps où le processus est inactif.
  • Exemple :
time sleep 3

Sortie :

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

Ici, real est 3 secondes, car la commande sleep 3 a attendu 3 secondes avant de se terminer.

2. user (temps utilisateur, CPU en mode utilisateur)

  • C'est le temps CPU utilisé par le programme dans l’espace utilisateur (hors interventions du noyau).
  • Cela correspond au temps passé par le processeur à exécuter directement les instructions du programme.
  • Si une commande est très gourmande en calculs, user sera élevé.
  • Dans l'exemple ci-dessus, user 0m0.000s signifie que sleep n'a pas utilisé de CPU, car il ne fait qu’attendre.

3. sys (temps système, CPU en mode noyau)

  • C'est le temps CPU utilisé par le noyau Linux pour effectuer des tâches système pour le programme.
  • Il inclut les appels système, la gestion des fichiers, les entrées/sorties, la mémoire, etc.
  • Si une commande interagit beaucoup avec le système (ex : accès disque), sys sera plus élevé.
  • Dans l'exemple ci-dessus, sys 0m0.004s montre que le noyau a utilisé 0.004 secondes pour gérer sleep.

Exemple avec un programme plus gourmand :

time find / > /dev/null

Sortie possible :

real    0m1.523s
user    0m0.938s
sys     0m0.585s
  • real = 1,523s → Temps total écoulé.
  • user = 0,938s → Temps CPU pour le traitement direct (find scanne les fichiers).
  • sys = 0,585s → Temps CPU pour les appels système (accès disque, métadonnées, etc.).

Résumé :

TempsSignificationExemple d'impact
realTemps total écouléAffecté par le réseau, les I/O, le multitâche
userTemps CPU utilisé directement par le programmeAugmente si le programme fait beaucoup de calculs
sysTemps CPU utilisé par le noyau pour la gestion systèmeAugmente si le programme fait beaucoup d'accès disque, réseau, mémoire