GNU/Linux >> Tutoriels Linux >  >> Linux

Top 25 des meilleurs outils de surveillance et de débogage des performances Linux

J'ai compilé 25 outils de surveillance et de débogage des performances qui vous seront utiles lorsque vous travaillez sur un environnement Linux. Cette liste n'est en aucun cas exhaustive ni ne fait autorité.

Cependant, cette liste contient suffisamment d'outils pour que vous puissiez jouer et choisir celui qui convient à votre scénario de débogage et de surveillance spécifique.

1. DAS

À l'aide de l'utilitaire sar, vous pouvez faire deux choses :1) Surveiller les performances du système en temps réel (processeur, mémoire, E/S, etc.) 2) Collecter des données de performances en arrière-plan sur une base continue et effectuer une analyse sur les données historiques pour identifier goulots d'étranglement.

Sar fait partie du package sysstat. Voici quelques-unes des choses que vous pouvez faire à l'aide de l'utilitaire sar.

  • Utilisation collective du processeur
  • Statistiques individuelles du processeur
  • Mémoire utilisée et disponible
  • Espace d'échange utilisé et disponible
  • Activités d'E/S globales du système
  • Activités d'E/S de chaque appareil
  • Statistiques de changement de contexte
  • Exécuter la file d'attente et charger les données moyennes
  • Statistiques du réseau
  • Rapport de données sar à partir d'un moment précis
  • et bien plus encore..

La commande sar suivante affichera les statistiques du processeur système 3 fois (avec 1 seconde d'intervalle).

La commande « sar -b » suivante rapporte les statistiques d'E/S. "1 3" indique que le sar -b sera exécuté toutes les 1 seconde pour un total de 3 fois.

$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:56:28 PM       tps      rtps      wtps   bread/s   bwrtn/s
01:56:29 PM    346.00    264.00     82.00   2208.00    768.00
01:56:30 PM    100.00     36.00     64.00    304.00    816.00
01:56:31 PM    282.83     32.32    250.51    258.59   2537.37
Average:       242.81    111.04    131.77    925.75   1369.90

Plus d'exemples SAR :comment installer/configurer Sar (sysstat) et 10 exemples de commandes Sar utiles

2. Tcpdump

tcpdump est un analyseur de paquets réseau. À l'aide de tcpdump, vous pouvez capturer les paquets et les analyser pour tout goulot d'étranglement des performances.

L'exemple de commande tcpdump suivant affiche les paquets capturés en ASCII.

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

À l'aide de tcpdump, vous pouvez capturer des paquets en fonction de plusieurs conditions personnalisées. Par exemple, capturez les paquets qui transitent par un port particulier, capturez la communication TCP entre deux hôtes spécifiques, capturez les paquets qui appartiennent à un type de protocole spécifique, etc.

Plus d'exemples tcpdump :15 exemples de commande TCPDUMP

3. Nagios

Nagios est une solution de surveillance open source qui peut surveiller à peu près n'importe quoi dans votre infrastructure informatique. Par exemple, lorsqu'un serveur tombe en panne, il peut envoyer une notification à votre équipe d'administrateurs système, lorsqu'une base de données tombe en panne, il peut avertir votre équipe DBA, lorsqu'un serveur Web tombe en panne, il peut en informer l'équipe appropriée.

Vous pouvez également définir un niveau d'avertissement et un seuil critique pour divers services afin de vous aider à résoudre le problème de manière proactive. Par exemple, il peut informer l'équipe d'administration système lorsqu'une partition de disque est pleine à 80 %, ce qui laissera suffisamment de temps à l'équipe d'administration système pour travailler sur l'ajout d'espace avant que le problème ne devienne critique.

Nagios dispose également d'une très bonne interface utilisateur à partir de laquelle vous pouvez surveiller la santé de votre infrastructure informatique globale.

Voici quelques-unes des choses que vous pouvez surveiller à l'aide de Nagios :

  • Tout matériel (serveurs, commutateurs, routeurs, etc.)
  • Serveurs Linux et serveurs Windows
  • Bases de données (Oracle, MySQL, PostgreSQL, etc.)
  • Divers services exécutés sur votre système d'exploitation (sendmail, nis, nfs, ldap, etc.)
  • Serveurs Web
  • Votre application personnalisée
  • etc.

Plus d'exemples Nagios :comment installer et configurer Nagios, surveiller une machine Windows distante et surveiller un serveur Linux distant.

4. Iostat

iostat rapporte les statistiques CPU, E/S disque et NFS. Voici quelques exemples de commandes iostat.

Iostat sans aucun argument affiche des informations sur l'utilisation du processeur et des statistiques d'E/S sur toutes les partitions du système, comme indiqué ci-dessous.

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

Par défaut, iostat affiche les données d'E/S pour tous les disques disponibles dans le système. Pour afficher les statistiques d'un périphérique spécifique (par exemple, /dev/sda), utilisez l'option -p comme indiqué ci-dessous.

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

5. Mpstat

mpstat rapporte les statistiques des processeurs. Voici quelques exemples de commandes mpstat.

L'option -A affiche toutes les informations pouvant être affichées par la commande mpstat comme indiqué ci-dessous. C'est vraiment équivalent à la commande "mpstat -I ALL -u -P ALL".

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.

mpstat Option -P ALL, affiche tous les processeurs (ou cœurs) individuels ainsi que leurs statistiques, comme indiqué ci-dessous.

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. Vmstat

vmstat rapporte les statistiques de la mémoire virtuelle. Voici quelques exemples de commandes vmstat.

vmstat par défaut affichera l'utilisation de la mémoire (y compris l'échange) comme indiqué ci-dessous.

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0
..

iostat et vmstat font partie de l'utilitaire sar. Vous devez installer le package sysstat pour faire fonctionner iostat et vmstat.

Plus d'exemples :24 Exemples de commandes iostat, vmstat et mpstat

7. Commande PS

Le processus est une instance en cours d'exécution d'un programme. Linux est un système d'exploitation multitâche, ce qui signifie que plusieurs processus peuvent être actifs à la fois. Utilisez la commande ps pour savoir quels processus sont en cours d'exécution sur votre système.

La commande ps vous donne également de nombreuses informations supplémentaires sur le processus en cours d'exécution, ce qui vous aidera à identifier les goulots d'étranglement des performances sur votre système.

Voici quelques exemples de commandes ps.

Utilisez l'option -u pour afficher le processus qui appartient à un nom d'utilisateur spécifique. Lorsque vous avez plusieurs noms d'utilisateur, séparez-les par une virgule. L'exemple ci-dessous affiche tous les processus appartenant à l'utilisateur wwwrun ou postfix.

$ ps -f -u wwwrun,postfix
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun    7495  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u

L'exemple ci-dessous affiche l'ID de processus et les commandes dans une hiérarchie. –forest est un argument de la commande ps qui affiche l'art ASCII de l'arborescence des processus. À partir de cet arbre, nous pouvons identifier quel est le processus parent et les processus enfants qu'il a forkés de manière récursive.

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7
  514  |   \_ -bash
17484  \_ sshd: root@pts/11
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5
 4302  |   \_ -bash

Plus d'exemples ps :7 exemples pratiques de commandes PS pour la surveillance de processus

8. Gratuit

La commande Free affiche des informations sur la mémoire physique (RAM) et la mémoire d'échange de votre système.

Dans l'exemple ci-dessous, la mémoire physique totale sur ce système est de 1 Go. Les valeurs affichées ci-dessous sont en Ko.

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

L'exemple suivant affichera la mémoire totale de votre système, y compris la RAM et l'échange.

Dans la commande suivante :

  • l'option m affiche les valeurs en Mo
  • l'option t affiche la ligne "Total", qui est la somme des valeurs de mémoire physique et d'échange
  • l'option o consiste à masquer la ligne tampons/cache de l'exemple ci-dessus.
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9. HAUT

La commande Top affiche tous les processus en cours d'exécution dans le système classés par certaines colonnes. Cela affiche les informations en temps réel.

Vous pouvez tuer un processus sans sortir du haut. Une fois que vous avez localisé un processus qui doit être tué, appuyez sur "k" qui vous demandera l'identifiant du processus et le signal à envoyer. Si vous avez le privilège de tuer ce PID particulier, il sera tué avec succès.

PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus

Utilisez top -u pour afficher un processus utilisateur spécifique uniquement dans la sortie de la commande supérieure.

$ top -u geek

Pendant que la commande unix top est en cours d'exécution, appuyez sur u qui vous demandera le nom d'utilisateur comme indiqué ci-dessous.

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

Plus d'exemples :15 exemples de commandes Linux pratiques

10. Pmap

La commande pmap affiche la carte mémoire d'un processus donné. Vous devez passer le pid comme argument à la commande pmap.

L'exemple suivant affiche la carte mémoire du shell bash actuel. Dans cet exemple, 5732 est le PID du shell bash.

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/ld-2.5.so
003b1000   1272K r-x--  /lib/libc-2.5.so
00520000      8K r-x--  /lib/libdl-2.5.so
0053f000     12K r-x--  /lib/libtermcap.so.2.0.8
0084d000     76K r-x--  /lib/libnsl-2.5.so
00c57000     32K r-x--  /lib/libnss_nis-2.5.so
00c8d000     36K r-x--  /lib/libnss_files-2.5.so
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

pmap -x donne des informations supplémentaires sur les cartes mémoire.

$  pmap -x 5732
5732:   -bash
Address   Kbytes     RSS    Anon  Locked Mode   Mapping
00393000     104       -       -       - r-x--  ld-2.5.so
003b1000    1272       -       -       - r-x--  libc-2.5.so
00520000       8       -       -       - r-x--  libdl-2.5.so
0053f000      12       -       -       - r-x--  libtermcap.so.2.0.8
0084d000      76       -       -       - r-x--  libnsl-2.5.so
00c57000      32       -       -       - r-x--  libnss_nis-2.5.so
00c8d000      36       -       -       - r-x--  libnss_files-2.5.so
b7d6c000    2048       -       -       - r----  locale-archive
bfd10000      84       -       -       - rw---    [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

Pour afficher les informations sur l'appareil des cartes de processus, utilisez "pamp -d pid".

11. Netstat

La commande Netstat affiche diverses informations liées au réseau telles que les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées, les adhésions multidiffusion, etc.,

Voici quelques exemples de commandes netstat.

Répertoriez tous les ports (à l'écoute et non à l'écoute) à l'aide de netstat -a comme indiqué ci-dessous.

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

Utilisez la commande netstat suivante pour savoir sur quel port un programme est en cours d'exécution.

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

Utilisez la commande netstat suivante pour savoir quel processus utilise un port particulier.

# netstat -an | grep ':80'

Plus d'exemples netstat :10 exemples de commande Netstat

12. TrafIP

IPTraf est un logiciel de surveillance de réseau IP. Voici quelques-unes des principales fonctionnalités d'IPTraf :

  • Il s'agit d'un utilitaire basé sur une console (texte).
  • Ceci affiche le trafic IP traversant votre réseau. Cela affiche l'indicateur TCP, le nombre de paquets et d'octets, les types de paquets ICMP, OSPF, etc.
  • Affiche des statistiques d'interface étendues (y compris IP, TCP, UDP, ICMP, taille et nombre de paquets, erreurs de somme de contrôle, etc.)
  • Le module LAN découvre automatiquement les hôtes et affiche leurs activités
  • Filtres d'affichage de protocole pour afficher le trafic de protocole sélectif
  • Fonctionnalités de journalisation avancées
  • Outre l'interface Ethernet, il prend également en charge FDDI, RNIS, SLIP, PPP et bouclage
  • Vous pouvez également exécuter l'utilitaire en mode plein écran. Cela a également un menu textuel.

Plus d'informations : Page d'accueil IPTraf. Capture d'écran IPTraf.

13. Strace

Strace est utilisé pour le débogage et le dépannage de l'exécution d'un exécutable sur un environnement Linux. Il affiche les appels système utilisés par le processus et les signaux reçus par le processus.

Strace surveille les appels système et les signaux d'un programme spécifique. Il est utile lorsque vous n'avez pas le code source et que vous souhaitez déboguer l'exécution d'un programme. strace vous fournit la séquence d'exécution d'un binaire du début à la fin.

Tracez un appel système spécifique dans un exécutable à l'aide de l'option -e

Par défaut, strace affiche tous les appels système pour l'exécutable donné. L'exemple suivant montre la sortie de strace pour la commande Linux ls.

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

Pour afficher uniquement un appel système spécifique, utilisez l'option strace -e comme indiqué ci-dessous.

$ strace -e open ls
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY)  = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libacl.so.1", O_RDONLY)      = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libattr.so.1", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3

Plus d'exemples de strace :7 exemples de strace pour déboguer l'exécution d'un programme sous Linux

14. Lsof

Lsof signifie ls open files, qui listera tous les fichiers ouverts dans le système. Les fichiers ouverts incluent la connexion réseau, les périphériques et les répertoires. La sortie de la commande lsof aura les colonnes suivantes :

  • Nom du processus COMMAND.
  • ID de processus PID
  • Nom d'utilisateur USER
  • Descripteur de fichier FD
  • Type de nœud TYPE du fichier
  • numéro d'appareil DEVICE
  • SIZE taille du fichier
  • Numéro de nœud NODE
  • NAME chemin complet du nom de fichier.

Pour afficher tous les fichiers ouverts du système, exécutez la commande lsof sans aucun paramètre, comme indiqué ci-dessous.

# lsof | more
COMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME
init          1       root  cwd       DIR        8,1      4096          2 /
init          1       root  rtd       DIR        8,1      4096          2 /
init          1       root  txt       REG        8,1     32684     983101 /sbin/init
init          1       root  mem       REG        8,1    106397     166798 /lib/ld-2.3.4.so
init          1       root  mem       REG        8,1   1454802     166799 /lib/tls/libc-2.3.4.so
init          1       root  mem       REG        8,1     53736     163964 /lib/libsepol.so.1
init          1       root  mem       REG        8,1     56328     166811 /lib/libselinux.so.1
init          1       root   10u     FIFO       0,13                  972 /dev/initctl
migration     2       root  cwd       DIR        8,1      4096          2 /
skipped..

Pour afficher les fichiers ouverts par un utilisateur spécifique, utilisez l'option lsof -u pour afficher tous les fichiers ouverts par un utilisateur spécifique.

# lsof -u ramesh
vi      7190 ramesh  txt    REG        8,1   474608   475196 /bin/vi
sshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh->abc-12-12-12-12.

Pour répertorier les utilisateurs d'un fichier particulier, utilisez lsof comme indiqué ci-dessous. Dans cet exemple, il affiche tous les utilisateurs qui utilisent actuellement vi.

# lsof /bin/vi
COMMAND  PID  USER    FD   TYPE DEVICE   SIZE   NODE NAME
vi      7258  root   txt    REG    8,1 474608 475196 /bin/vi
vi      7300  ramesh txt    REG    8,1 474608 475196 /bin/vi

15. Ntop

Ntop est comme top, mais pour le trafic réseau. ntop est un moniteur de trafic réseau qui affiche l'utilisation du réseau.

Vous pouvez également accéder à ntop à partir du navigateur pour obtenir les informations sur le trafic et l'état du réseau.

Voici quelques-unes des fonctionnalités clés de ntop :

  • Afficher le trafic réseau ventilé par protocoles
  • Trier la sortie du trafic réseau en fonction de plusieurs critères
  • Afficher les statistiques de trafic réseau
  • Possibilité de stocker les statistiques de trafic réseau à l'aide de RRD
  • Identifier l'identité des utilisateurs et du système d'exploitation hôte
  • Capacité à analyser et afficher le trafic informatique
  • Capacité à fonctionner en tant que collecteur NetFlow/sFlow pour les routeurs et les commutateurs
  • Affiche des statistiques de trafic réseau similaires à RMON
  • Fonctionne sous Linux, MacOS et Windows

Plus d'informations :page d'accueil de Ntop

16. GkrellM

GKrellM signifie GNU Krell Monitors ou GTK Krell Meters. Il s'agit d'un programme de surveillance basé sur la boîte à outils GTK +, qui surveille diverses ressources système. L'interface utilisateur est empilable. c'est-à-dire que vous pouvez ajouter autant d'objets de surveillance que vous le souhaitez les uns sur les autres. Comme tout autre outil de surveillance basé sur l'interface utilisateur de bureau, il peut surveiller le processeur, la mémoire, le système de fichiers, l'utilisation du réseau, etc. Mais en utilisant des plugins, vous pouvez surveiller les applications externes.

Plus d'informations :page d'accueil de GkrellM

17. w et disponibilité

Lors de la surveillance des performances du système, la commande w aidera à savoir qui est connecté au système.

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0            24Oct11  21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0    192.168.1.10  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]
john     pts/0    192.168.1.11  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]
jason    pts/0    192.168.1.12  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]

Pour chaque utilisateur connecté, il affiche les informations suivantes :

  • Nom d'utilisateur
  • infos tty
  • Adresse IP de l'hôte distant
  • Heure de connexion de l'utilisateur
  • Depuis combien de temps l'utilisateur est inactif
  • JCPU et PCUP
  • La commande du processus actuel que l'utilisateur exécute

La ligne 1 de la sortie de la commande w est similaire à la sortie de la commande uptime. Il affiche les éléments suivants :

  • Heure actuelle
  • Depuis combien de temps le système est opérationnel
  • Nombre total d'utilisateurs actuellement connectés au système
  • Moyenne de charge pour les 1, 5 et 15 dernières minutes

Si vous voulez uniquement les informations de disponibilité, utilisez la commande uptime.

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

Veuillez noter que les commandes w et uptime obtiennent les informations du fichier de données /var/run/utmp.

18. /proc

/proc est un système de fichiers virtuel. Par exemple, si vous faites ls -l /proc/stat, vous remarquerez qu'il a une taille de 0 octet, mais si vous faites « cat /proc/stat », vous verrez du contenu à l'intérieur du fichier.

Faites un ls -l /proc, et vous verrez beaucoup de répertoires avec juste des nombres. Ces numéros représentent les identifiants de processus, les fichiers à l'intérieur de ce répertoire numéroté correspondent au processus avec ce PID particulier.

Voici les fichiers importants situés sous chaque répertoire numéroté (pour chaque processus) :

  • cmdline – ligne de commande de la commande.
  • environ – variables d'environnement.
  • fd – Contient les descripteurs de fichiers liés aux fichiers appropriés.
  • limits - Contient les informations sur les limites spécifiques du processus.
  • montages – informations relatives aux montages

Voici les liens importants sous chaque répertoire numéroté (pour chaque processus) :

  • cwd – Lien vers le répertoire de travail actuel du processus.
  • exe - Lien vers l'exécutable du processus.
  • root – Lien vers le répertoire racine du processus.

Plus d'exemples /proc :Explorer le système de fichiers Linux /proc

19. Garde du système KDE

Ceci est également appelé KSysGuard. Sur les bureaux Linux qui exécutent KDE, vous pouvez utiliser cet outil pour surveiller les ressources système. Outre la surveillance du système local, cela peut également surveiller les systèmes distants.

Si vous utilisez le bureau KDE, accédez à Applications -> Système -> Moniteur système, ce qui lancera KSysGuard. Vous pouvez également taper ksysguard depuis la ligne de commande pour le lancer.

Cet outil affiche les deux onglets suivants :

  • Tableau des processus :affiche tous les processus actifs. Vous pouvez trier, supprimer ou modifier la priorité des processus à partir d'ici
  • Charge du système :affiche des graphiques pour les utilisations du processeur, de la mémoire et du réseau. Ces graphiques peuvent être personnalisés en faisant un clic droit sur l'un de ces graphiques.

Pour vous connecter à un hôte distant et le surveiller, cliquez sur le menu Fichier -> Surveiller la machine distante -> spécifiez l'adresse IP de l'hôte, la méthode de connexion (par exemple, ssh). Cela vous demandera le nom d'utilisateur/mot de passe sur la machine distante. Une fois connecté, cela affichera l'utilisation du système de la machine distante dans les onglets Process Table et System Load.

20. Moniteur système GNOME

Sur les postes de travail Linux qui exécutent GNOME, vous pouvez utiliser cet outil pour surveiller les processus, les ressources système et les systèmes de fichiers à partir d'une interface graphique. Outre la surveillance, vous pouvez également utiliser cet outil d'interface utilisateur pour tuer un processus, modifier la priorité d'un processus.

Si vous utilisez le bureau GNOME, accédez à Système -> Administration -> Moniteur système, ce qui lancera le moniteur système GNOME. Vous pouvez également taper gnome-system-monitor depuis la ligne de commande pour le lancer.

Cet outil comporte les quatre onglets suivants :

  • Système :affiche les informations système, y compris la version de la distribution Linux, les ressources système et les informations sur le matériel.
  • Processus :affiche tous les processus actifs pouvant être triés en fonction de divers champs
  • Ressources :affiche les utilisations du processeur, de la mémoire et du réseau
  • Systèmes de fichiers :affiche des informations sur les systèmes de fichiers actuellement montés

Plus d'informations :page d'accueil de GNOME System Monitor

21. Conky

Conky est un moniteur système ou X. Conky affiche des informations dans l'interface utilisateur en utilisant ce qu'il appelle des objets. Par défaut, plus de 250 objets sont fournis avec conky, qui affiche diverses informations de surveillance (CPU, mémoire, réseau, disque, etc.). Il prend en charge IMAP, POP3, plusieurs lecteurs audio.

Vous pouvez surveiller et afficher n'importe quelle application externe en créant vos propres objets à l'aide de scripts. Les informations de surveillance peuvent être affichées sous différents formats :texte, graphiques, barres de progression, etc. Cet utilitaire est extrêmement configurable.

Plus d'informations :captures d'écran de Conky

22. Cactus

Cacti est une interface utilisateur basée sur PHP pour RRDTool. Cacti stocke les données nécessaires pour générer le graphique dans une base de données MySQL.

Voici quelques fonctionnalités de haut niveau de Cacti :

  • Capacité à effectuer la collecte de données et à les stocker dans une base de données MySQL (ou des archives circulaires)
  • Plusieurs fonctionnalités graphiques avancées sont disponibles (regroupement d'éléments graphiques GPRINT, remplissage automatique des graphiques, manipulation des données graphiques à l'aide de la fonction mathématique CDEF, tous les éléments graphiques RRDTool sont pris en charge)
  • La source de données peut collecter des données locales ou distantes pour le graphique
  • Possibilité de personnaliser entièrement les paramètres d'archivage circulaire (RRA)
  • L'utilisateur peut définir des scripts personnalisés pour collecter des données
  • Compatibilité SNMP (php-snmp, ucd-snmp ou net-snmp) pour la collecte de données
  • Le poller intégré permet d'exécuter des scripts personnalisés, d'obtenir des données SNMP, de mettre à jour des fichiers RRD, etc.
  • Fonctionnalités de modèle de graphique hautement flexibles
  • Options d'affichage graphique conviviales et personnalisables
  • Créer différents utilisateurs avec différents ensembles d'autorisations pour accéder à l'interface cacti
  • Des niveaux d'autorisation précis peuvent être définis pour chaque utilisateur
  • et bien plus encore..

Plus d'infos :Page d'accueil de Cacti

23. Vnstat

vnstat est un utilitaire de ligne de commande qui affiche et consigne le trafic réseau des interfaces sur vos systèmes. Cela dépend des statistiques réseau fournies par le noyau. Ainsi, vnstat n'ajoute aucune charge supplémentaire à votre système pour surveiller et enregistrer le trafic réseau.

vnstat sans aucun argument vous donnera un résumé rapide avec les informations suivantes :

  • La dernière fois que la base de données vnStat située sous /var/lib/vnstat/ a été mise à jour
  • Depuis qu'il a commencé à collecter les statistiques pour une interface spécifique
  • Les données statistiques du réseau (octets transmis, octets reçus) pour les deux derniers mois et les deux derniers jours.
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |

	 daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

Utilisez « vnstat -t » ou « vnstat –top10 » pour afficher les 10 jours de trafic les plus fréquents.

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

Plus d'exemples vnstat :comment surveiller et consigner le trafic réseau à l'aide de VNStat

24. Htop

htop est un visualiseur de processus basé sur ncurses. Ceci est similaire à top, mais est plus flexible et convivial. Vous pouvez interagir avec le htop en utilisant la souris. Vous pouvez faire défiler verticalement pour afficher la liste complète des processus et faire défiler horizontalement pour afficher la ligne de commande complète du processus.

La sortie htop se compose de trois sections 1) en-tête 2) corps et 3) pied de page.

En-tête affiche les trois barres suivantes et quelques informations vitales sur le système. Vous pouvez modifier n'importe lequel d'entre eux à partir du menu de configuration de htop.

  • Utilisation CPU :affiche le % utilisé dans le texte à la fin de la barre. La barre elle-même affichera différentes couleurs. Faible priorité en bleu, normal en vert, noyau en rouge.
  • Utilisation de la mémoire
  • Utilisation de l'échange

Corps affiche la liste des processus triés par % d'utilisation CPU. Utilisez les touches fléchées, la page vers le haut, la touche vers le bas pour faire défiler les processus.

Pied de page affiche les commandes du menu htop.

Plus d'informations :Capture d'écran HTOP et exemples

25. Statistiques des sockets – SS

ss signifie statistiques de socket. Cela affiche des informations similaires à la commande netstat.

Pour afficher toutes les sockets d'écoute, faites ss -l comme indiqué ci-dessous.

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

Ce qui suit affiche uniquement la connexion établie.

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)

Ce qui suit affiche les statistiques récapitulatives des sockets. Cela affiche le nombre total de sockets ventilés par type.

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11

Transport Total     IP        IPv6
*         721       -         -
RAW       0         0         0
UDP       13        10        3
TCP       16        7         9
INET      29        17        12
FRAG      0         0         0

Quel outil utilisez-vous pour surveiller les performances de votre environnement Linux ? Ai-je manqué l'un de vos outils de surveillance des performances préférés ? Laissez un commentaire.


Linux
  1. 4 outils de surveillance des performances Linux basés sur CLI :top, htop, ps et vmstat

  2. 5 meilleurs outils de surveillance Linux basés sur un terminal

  3. Meilleurs outils pour prendre et éditer des captures d'écran sous Linux

  4. Top 5 des meilleurs outils de surveillance du système

  5. Top 20 des meilleures certifications et cours Red Hat Linux

Top 10 des meilleurs outils de sélection de couleurs pour le système Linux

Top 10 des meilleurs outils d'analyse pour le système Linux

Top 10 des meilleurs outils météo pour le système Linux

Top 10 des meilleurs outils d'information sur le matériel et le système Linux

8 meilleurs outils pour mesurer les performances des tests de stress Linux

Meilleur éditeur de code Linux :Top 11 examiné et comparé