Super article sur top / htop
Le vénérable top est bien il est Posix, dispo dans busybox toussa toussa mais htop est quand même bien mieux.
Mais avant de partir direct dans htop, je vais m'attarder sur top parce qu'il est quand même pas trop mal.
Site source: https://lord.re/posts/154-top-htop/
Utiliser top quand c'est inéluctable.
Ouai il y a des fois où vraiment on peut pas avoir htop. C'est triste mais ça arrive.
Et bha sachez qu'on peut s'en servir sans se vomir dessus.
On va transformer ça :
En ça :
Se démerdouiller
Premier truc à connaître : ? . Ouai, trouver de l'aide est le premier truc ;-)
Un truc indispensable pour rendre le truc plus lisible 0. Ça n'affichera que les valeurs non nulles.
Pour chercher une info c'est L (comme locate).
Pour envoyer un signal à un processus ça sera avec k.
Level UP
Bon c'est bien gentil mais c'est, pour l'instant, pas non plus la joie.
On va virer/ajouter les infos qui nous intéressent : Pour ça faut appuyer sur f et là choisissez avec Espace les champs que vous voulez et s pour le champ qui servira à ordonner les lignes.
Ha là déjà on a énormément progressé !
On peut encore améliorer le truc en pimpant les couleurs : Z et là tout un nouveau monde s'ouvre à vous ! Ce menu de configuration vous permet de choisir la couleur des différents éléments.
Hey mais vous savez quoi ? On peut aller encore plus loin !
Avec A vous aurez le multi-window !
O__O
Et oui. En fait top est vraiment pas si pourri que ça une fois un peu confé (:-þ).
Pour passer d'une fenêtre à une autre c'est avec g puis vous choisissez le numéro que vous voulez (de 1 à 4). Et vous pouvez re-faire ce que vous avez fait pour la première fenêtre mais pour les trois autres.
Une fois tout aux ptits oignons, pensez à faire un W pour sauvegarder la configuration.
Htop
Bon après ce petit chapitre où on voit que top est pas si pourri qu'il en a l'air on va voir pourquoi htop est mieux.
Tweakons sa face
Bon déjà on va changer un peu son allure par défaut. Avec F2 on accède aux réglages.
Perso dans les Meters en Left column je mets :
- CPU (1&2/4) [Bar]
- Memory [Bar]
- CPU [Graph]
et en Right column
- CPU (3&4/4) [Bar]
- Task counter [Text]
- CPU [LED]
Ensuite dans les Display options j'active :
- Tree view
- Shadow other users' processes
- Hide kernel threads
- Hide userland process threads
- Display threads in a different color
- Show custom thread names
- Show program path
- Highlight program "basename"
- Highlight large numbers in memory counters
- Leave a margin around header
Et ensuite dans Colors choisissez ce qui vous flatte le plus la rétine.
Le dernier onglet concerne les Columns là c'est à votre convenance, la mienne ?
- PID
- User
- State
- Percent CPU
- Percent MEM
- Time
- Command
Et pour finir un ptit F10.
La configuration se sauvegarde dans le fichier ~/.config/htop/htoprc .
Voilà jusque-là pas tellement d'avantage face à top, mais du coup pourquoi qu'il est mieux lui ?
Les atouts
Contrairement à top on peut lui faire des trucs en plus sur les processus mais souvent il va falloir rajouter d'autres logiciels.
Un premier truc c'est strace qui permet d'observer ce que fait un processus qui tourne (les syscalls qu'il lance permet de savoir s'il dort où s'il attend les io ou autre). Pour ça une fois que vous êtes sur le processus incriminé, appuyez sur s.
Les descripteurs de fichiers utilisés par un processus peuvent être vu avec l.Ça vous lancera donc un lsof sur le processus.
Un ptit L vous affichera tous les appels aux libs que fait un processus. Pour ça il faut que vous ayez ltrace d'installé.
Et le ptit dernier c'est e qui permet de voir toutes les variables d'environnement d'un processus.
Voilà pour moi le gros avantage d'htop c'est d'avoir une config rapidement accessible, une interface beaucoup plus intuitive et de s'intégrer bien avec les outils d'audit.
Les confs :
Pour les flemmards je vous mets ici les fichiers de configs de ces deux logiciels :
~/.config/htop/htoprc
<code class="language-ini" data-lang="ini"><span># Beware! This file is rewritten by htop when settings are changed in the interface.</span>
<span># The parser is also very primitive, and not human-friendly.</span>
<span>fields</span><span>=</span><span>0 48 2 46 47 49 1</span>
<span>sort_key</span><span>=</span><span>47</span>
<span>sort_direction</span><span>=</span><span>1</span>
<span>hide_threads</span><span>=</span><span>0</span>
<span>hide_kernel_threads</span><span>=</span><span>1</span>
<span>hide_userland_threads</span><span>=</span><span>1</span>
<span>shadow_other_users</span><span>=</span><span>1</span>
<span>show_thread_names</span><span>=</span><span>1</span>
<span>show_program_path</span><span>=</span><span>1</span>
<span>highlight_base_name</span><span>=</span><span>1</span>
<span>highlight_megabytes</span><span>=</span><span>1</span>
<span>highlight_threads</span><span>=</span><span>1</span>
<span>tree_view</span><span>=</span><span>1</span>
<span>header_margin</span><span>=</span><span>1</span>
<span>detailed_cpu_time</span><span>=</span><span>0</span>
<span>cpu_count_from_zero</span><span>=</span><span>0</span>
<span>update_process_names</span><span>=</span><span>0</span>
<span>account_guest_in_cpu_meter</span><span>=</span><span>0</span>
<span>color_scheme</span><span>=</span><span>5</span>
<span>delay</span><span>=</span><span>15</span>
<span>left_meters</span><span>=</span><span>LeftCPUs2 Memory CPU</span>
<span>left_meter_modes</span><span>=</span><span>1 1 3</span>
<span>right_meters</span><span>=</span><span>RightCPUs2 Tasks CPU</span>
<span>right_meter_modes</span><span>=</span><span>1 2 4</span></code>
~/.config/procps/toprc
<code class="language-ini" data-lang="ini"><span>top's Config File (Linux processes with windows)</span>
<span>Id:i, Mode_altscr</span><span>=</span><span>1, Mode_irixps=1, Delay_time=1.0, Curwin=0</span>
<span>Def fieldscur</span><span>=</span><span><A5><A8>34;=@ķ<BA><B9><C5>&')*+,-./012568<>?ABCFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij
</span><span> winflags=195892, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=1
</span><span> summclr=6, msgsclr=1, headclr=3, taskclr=2</span>
<span>Job fieldscur</span><span>=</span><span><A5><A6><B9><B7><BA>(<B3><B4>Ļ<BD>@<<A7><C5>)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij
</span><span> winflags=195892, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
</span><span> summclr=6, msgsclr=6, headclr=7, taskclr=6</span>
<span>Mem fieldscur</span><span>=</span><span><A5><BA>;<<BD><BE><BF>@AMBNCD34<B7><C5>&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[]^_`abcdefghij
</span><span> winflags=1244470, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=1
</span><span> summclr=5, msgsclr=5, headclr=4, taskclr=5</span>
<span>Usr fieldscur</span><span>=</span><span><A5><A6><A7><A8><AA><B0><B9><B7><BA><C4><C5>)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij
</span><span> winflags=195892, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0
</span><span> summclr=3, msgsclr=3, headclr=2, taskclr=4</span>
<span>Fixed_widest</span><span>=</span><span>0, Summ_mscale=1, Task_mscale=3, Zero_suppress=1</span></code>
This is new to me, guy. Currently, I only use top command to observe the system process. I must try this one now. Thanks again, master.