[Htop](http://hisham.hm/htop/) est outil permettant de visualiser des processus et leurs caractéristiques (PID, CPU, mémoire, I/O…) de façon interactive sur un système Linux/Unix. Il est écrit en C avec la bibliothèque _ncurses_. Htop s'inspire de `top`, outil historique, en apportant plusieurs améliorations (couleurs, scroll vertical, interactions avec le souris, etc.).
Une traduction partielle se trouve dans une série d'articles sur <https://carlchenet.com/category/htop-explique/>
## FAQ
### Ma mémoire est remplie en permanence, est-ce grave ?
La barre de mémoire de Htop se décompose en : mémoire utilisée (vert) + buffers (bleu) + mémoire cache (jaune).
Pour vulgariser, la mémoire cache peut être ignorée car Linux ne libère pas tout seul cette mémoire.
Vous pouvez forcer la libération de la mémoire cache avec `echo 3 > /proc/sys/vm/drop_caches` mais c'est déconseillé en général.
### Ma Swap est remplie en permanence, est-ce grave ?
Si la Swap est utilisée, cela signifie que votre système a eu besoin dans le passé de s'en servir, par exemple car il manquait de mémoire.
Cela ne signifie par forcément que la Swap est en cours d'utilisation.
Si vous avez de la mémoire libre, vous pouvez forcer une libération de votre Swap via `swapoff -a && swapon -a`.
### Que veulent dire les colonnes _VIRT_, _RES_ et _SHR_ ?
VIR est la mémoire virtuelle d'un processus, elle inclut notamment les fichiers mappés en mémoire, la mémoire de la carte vidéo et les allocations mémoire (fonctions `malloc()`en C) qui ne sont pas forcément utilisées en pratique.
RES est la mémoire résidente d'un processus, c'est un bon indicateur de la mémoire réellement utilisée même si une partie de cette mémoire peut être partagée avec d'autres processus. Il faut noter aussi qu'en cas de fork d'un processus, la mémoire résidente sera identique pour le second processmais pas réellement utilisée car Linux utilise une méthode de copy-on-write .
SHR est la mémoire partagée d'un processus, comme par exemple les bibliothèques partagées.
En résumé, la mémoire réellement utilisée par un processus au moment présent se situe entre _RES_-_SHR_ et _VIRT_, et l'on peut considérer que _RES_ est une bonne approximation.