GNU/Linux >> Linux Esercitazione >  >> Linux

I 25 migliori strumenti di monitoraggio e debug delle prestazioni Linux

Ho compilato 25 strumenti di monitoraggio e debug delle prestazioni che saranno utili quando si lavora in ambiente Linux. Questo elenco non è completo o autorevole in alcun modo.

Tuttavia, questo elenco contiene strumenti sufficienti per consentirti di giocare e scegliere quello adatto al tuo specifico scenario di debug e monitoraggio.

1. SAR

Utilizzando l'utility sar puoi fare due cose:1) Monitorare le prestazioni del sistema in tempo reale (CPU, memoria, I/O, ecc.) 2) Raccogliere i dati sulle prestazioni in background su base continuativa ed eseguire analisi sui dati storici per identificare colli di bottiglia.

Sar fa parte del pacchetto sysstat. Le seguenti sono alcune delle cose che puoi fare usando l'utilità sar.

  • Utilizzo collettivo della CPU
  • Statistiche della singola CPU
  • Memoria utilizzata e disponibile
  • Scambia spazio utilizzato e disponibile
  • Attività complessive di I/O del sistema
  • Attività I/O del singolo dispositivo
  • Statistiche sul cambio di contesto
  • Esegui coda e carica dati medi
  • Statistiche di rete
  • Segnala i dati sar da un momento specifico
  • e molto altro ancora..

Il seguente comando sar visualizzerà le statistiche della CPU del sistema 3 volte (con un intervallo di 1 secondo).

Il seguente comando "sar -b" riporta le statistiche di I/O. “1 3” indica che sar -b verrà eseguito ogni 1 secondo per un totale di 3 volte.

$ 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

Altri esempi SAR:come installare/configurare Sar (sysstat) e 10 esempi utili di comandi Sar

2. Tcpdump

tcpdump è un analizzatore di pacchetti di rete. Usando tcpdump puoi catturare i pacchetti e analizzarli per eventuali colli di bottiglia delle prestazioni.

Il seguente esempio di comando tcpdump mostra i pacchetti acquisiti in 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........

Usando tcpdump puoi acquisire pacchetti in base a diverse condizioni personalizzate. Ad esempio, acquisisci pacchetti che fluiscono attraverso una porta particolare, acquisisci comunicazioni TCP tra due host specifici, acquisisci pacchetti che appartengono a un tipo di protocollo specifico, ecc.

Altri esempi di tcpdump:15 esempi di comandi TCPDUMP

3. Nagios

Nagios è una soluzione di monitoraggio open source in grado di monitorare praticamente qualsiasi cosa nella tua infrastruttura IT. Ad esempio, quando un server si interrompe può inviare una notifica al tuo team di amministratori di sistema, quando un database si interrompe può eseguire il paging del tuo team DBA, quando un server Web si interrompe può avvisare il team appropriato.

Puoi anche impostare un livello di avviso e soglia critico per vari servizi per aiutarti a risolvere il problema in modo proattivo. Ad esempio, può notificare al team di sysadmin quando una partizione del disco è piena all'80%, il che darà tempo sufficiente affinché il team di sysadmin possa lavorare per aggiungere più spazio prima che il problema diventi critico.

Nagios ha anche un'ottima interfaccia utente da cui puoi monitorare lo stato dell'intera infrastruttura IT.

Di seguito sono elencate alcune delle cose che puoi monitorare utilizzando Nagios:

  • Qualsiasi hardware (server, switch, router, ecc.)
  • Server Linux e server Windows
  • Banche dati (Oracle, MySQL, PostgreSQL, ecc.)
  • Vari servizi in esecuzione sul tuo sistema operativo (sendmail, nis, nfs, ldap, ecc.)
  • Server Web
  • La tua applicazione personalizzata
  • ecc.

Altri esempi di Nagios:come installare e configurare Nagios, monitorare la macchina Windows remota e monitorare il server Linux remoto.

4. Iostato

iostat riporta le statistiche relative a CPU, I/O su disco e NFS. Di seguito sono riportati alcuni esempi di comandi iostat.

Iostat senza alcun argomento visualizza informazioni sull'utilizzo della CPU e statistiche di I/O su tutte le partizioni del sistema come mostrato di seguito.

$ 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

Per impostazione predefinita, iostat visualizza i dati di I/O per tutti i dischi disponibili nel sistema. Per visualizzare le statistiche per un dispositivo specifico (ad esempio, /dev/sda), usa l'opzione -p come mostrato di seguito.

$ 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 riporta le statistiche dei processori. Di seguito sono riportati alcuni esempi di comandi mpstat.

L'opzione -A, visualizza tutte le informazioni che possono essere visualizzate dal comando mpstat come mostrato di seguito. Questo è davvero equivalente al comando "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, mostra tutte le singole CPU (o Core) insieme alle sue statistiche come mostrato di seguito.

$ 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 riporta le statistiche sulla memoria virtuale. Di seguito sono riportati alcuni esempi di comandi vmstat.

vmstat per impostazione predefinita visualizzerà l'utilizzo della memoria (incluso lo scambio) come mostrato di seguito.

$ 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 e vmstat fanno parte dell'utilità sar. Dovresti installare il pacchetto sysstat per far funzionare iostat e vmstat.

Altri esempi:24 Esempi di comandi iostat, vmstat e mpstat

7. Comando PS

Process è un'istanza in esecuzione di un programma. Linux è un sistema operativo multitasking, il che significa che più di un processo può essere attivo contemporaneamente. Usa il comando ps per scoprire quali processi sono in esecuzione sul tuo sistema.

Il comando ps ti fornisce anche molte informazioni aggiuntive sul processo in esecuzione che ti aiuteranno a identificare eventuali colli di bottiglia delle prestazioni sul tuo sistema.

Di seguito sono riportati alcuni esempi di comandi ps.

Utilizzare l'opzione -u per visualizzare il processo che appartiene a un nome utente specifico. Quando hai più nomi utente, separali usando una virgola. L'esempio seguente mostra tutti i processi di proprietà dell'utente wwwrun o 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'esempio seguente mostra l'ID di processo e i comandi in una gerarchia. –forest è un argomento del comando ps che mostra la grafica ASCII dell'albero dei processi. Da questo albero, possiamo identificare qual è il processo padre e il processo figlio che ha biforcato in modo ricorsivo.

$ 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

Altri esempi di ps:7 esempi pratici di comandi PS per il monitoraggio dei processi

8. Gratuito

Il comando Free mostra informazioni sulla memoria fisica (RAM) e di scambio del tuo sistema.

Nell'esempio seguente, la memoria fisica totale su questo sistema è 1 GB. I valori visualizzati di seguito sono in KB.

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

L'esempio seguente mostrerà la memoria totale sul tuo sistema, inclusa RAM e Swap.

Nel comando seguente:

  • l'opzione m mostra i valori in MB
  • l'opzione t visualizza la riga "Totale", che è la somma dei valori della memoria fisica e di scambio
  • l'opzione o consiste nel nascondere la riga buffer/cache dall'esempio precedente.
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9. TOP

Il comando Top mostra tutto il processo in esecuzione nel sistema ordinato in base a determinate colonne. Questo mostra le informazioni in tempo reale.

Puoi terminare un processo senza uscire dall'alto. Una volta individuato un processo che deve essere terminato, premi "k" che chiederà l'ID del processo e segnalerà l'invio. Se hai il privilegio di uccidere quel particolare PID, verrà ucciso correttamente.

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

Usa top -u per visualizzare i processi di un utente specifico solo nell'output del comando in alto.

$ top -u geek

Mentre il comando unix top è in esecuzione, premi u che chiederà il nome utente come mostrato di seguito.

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

Altri esempi principali:15 esempi pratici di comandi principali di Linux

10. Mappa

Il comando pmap mostra la mappa della memoria di un determinato processo. Devi passare il pid come argomento al comando pmap.

L'esempio seguente mostra la mappa di memoria della shell bash corrente. In questo esempio, 5732 è il PID della 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 fornisce alcune informazioni aggiuntive sulle mappe di memoria.

$  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       -       -       -

Per visualizzare le informazioni sul dispositivo delle mappe di processo, utilizzare "pamp -d pid".

11. Netstat

Il comando Netstat visualizza varie informazioni relative alla rete come connessioni di rete, tabelle di routing, statistiche dell'interfaccia, connessioni mascherate, iscrizioni multicast ecc.

Di seguito sono riportati alcuni esempi di comandi netstat.

Elenca tutte le porte (sia in ascolto che non in ascolto) utilizzando netstat -a come mostrato di seguito.

# 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

Usa il seguente comando netstat per scoprire su quale porta è in esecuzione un programma.

# 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  -

Usa il seguente comando netstat per scoprire quale processo sta usando una porta particolare.

# netstat -an | grep ':80'

Altri esempi di netstat:10 esempi di comandi Netstat

12. IPTraf

IPTraf è un software di monitoraggio della rete IP. Di seguito sono elencate alcune delle caratteristiche principali di IPTraf:

  • È un'utilità basata su console (basata su testo).
  • Questo mostra il traffico IP che attraversa la tua rete. Visualizza flag TCP, conteggi di pacchetti e byte, ICMP, tipi di pacchetti OSPF, ecc.
  • Visualizza statistiche estese dell'interfaccia (inclusi IP, TCP, UDP, ICMP, dimensione e conteggio dei pacchetti, errori di checksum, ecc.)
  • Il modulo LAN rileva automaticamente gli host e visualizza le loro attività
  • Filtri di visualizzazione del protocollo per visualizzare il traffico del protocollo selettivo
  • Funzioni di registrazione avanzate
  • Oltre all'interfaccia Ethernet, supporta anche FDDI, ISDN, SLIP, PPP e loopback
  • Puoi anche eseguire l'utilità in modalità a schermo intero. Questo ha anche un menu basato su testo.

Maggiori informazioni: home page di IPTraf. Schermata IPTraf.

13. Strace

Strace viene utilizzato per il debug e la risoluzione dei problemi dell'esecuzione di un eseguibile in ambiente Linux. Visualizza le chiamate di sistema utilizzate dal processo e i segnali ricevuti dal processo.

Strace controlla le chiamate di sistema ei segnali di un programma specifico. È utile quando non si dispone del codice sorgente e si desidera eseguire il debug dell'esecuzione di un programma. strace ti fornisce la sequenza di esecuzione di un binario dall'inizio alla fine.

Traccia una chiamata di sistema specifica in un eseguibile utilizzando l'opzione -e

Per impostazione predefinita, strace visualizza tutte le chiamate di sistema per l'eseguibile specificato. L'esempio seguente mostra l'output di strace per il comando ls di Linux.

$ 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

Per visualizzare solo una specifica chiamata di sistema, utilizzare l'opzione strace -e come mostrato di seguito.

$ 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

Altri esempi strace:7 esempi strace per eseguire il debug dell'esecuzione di un programma in Linux

14. Lsof

Lsof sta per ls file aperti, che elencherà tutti i file aperti nel sistema. I file aperti includono connessione di rete, dispositivi e directory. L'output del comando lsof avrà le seguenti colonne:

  • Nome processo COMANDO.
  • ID processo PID
  • Nome utente UTENTE
  • Descrittore di file FD
  • TYPE tipo di nodo del file
  • Numero dispositivo DISPOSITIVO
  • DIMENSIONE dimensione del file
  • Numero di nodo NODE
  • NAME percorso completo del nome file.

Per visualizzare tutti i file aperti del sistema, eseguire il comando lsof senza alcun parametro come mostrato di seguito.

# 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..

Per visualizzare i file aperti da un utente specifico, usa l'opzione lsof -u per visualizzare tutti i file aperti da un utente specifico.

# 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.

Per elencare gli utenti di un particolare file, utilizzare lsof come mostrato di seguito. In questo esempio, mostra tutti gli utenti che stanno attualmente utilizzando 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 è proprio come top, ma per il traffico di rete. ntop è un monitor del traffico di rete che mostra l'utilizzo della rete.

Puoi anche accedere a ntop dal browser per ottenere le informazioni sul traffico e lo stato della rete.

Di seguito sono elencate alcune delle caratteristiche principali di ntop:

  • Visualizza il traffico di rete suddiviso per protocolli
  • Ordina l'output del traffico di rete in base a diversi criteri
  • Visualizza statistiche sul traffico di rete
  • Possibilità di memorizzare le statistiche sul traffico di rete utilizzando RRD
  • Identifica l'identità degli utenti e ospita i sistemi operativi
  • Capacità di analizzare e visualizzare il traffico IT
  • Possibilità di funzionare come raccoglitore NetFlow/sFlow per router e switch
  • Visualizza statistiche sul traffico di rete simili a RMON
  • Funziona su Linux, MacOS e Windows

Maggiori informazioni:Pagina iniziale di Ntop

16. GkrellM

GKrellM sta per GNU Krell Monitors, o GTK Krell Meters. È un programma di monitoraggio basato su GTK+ toolkit, che monitora varie risorse di sistema. L'interfaccia utente è staccabile. cioè puoi aggiungere tutti gli oggetti di monitoraggio che desideri uno sopra l'altro. Proprio come qualsiasi altro strumento di monitoraggio basato sull'interfaccia utente desktop, può monitorare CPU, memoria, file system, utilizzo della rete, ecc. Ma utilizzando i plug-in puoi monitorare le applicazioni esterne.

Maggiori informazioni:home page di GkrellM

17. w e tempo di attività

Durante il monitoraggio delle prestazioni del sistema, il comando w ti aiuterà a sapere chi è connesso al sistema.

$ 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]

Per ogni utente che ha effettuato l'accesso, visualizza le seguenti informazioni:

  • Nome utente
  • informazioni tty
  • Indirizzo IP dell'host remoto
  • Ora di accesso dell'utente
  • Per quanto tempo l'utente è rimasto inattivo
  • JCPU e PCUP
  • Il comando del processo corrente che l'utente sta eseguendo

La riga 1 dell'output del comando w è simile all'output del comando uptime. Visualizza quanto segue:

  • Ora attuale
  • Da quanto tempo il sistema è attivo e funzionante
  • Numero totale di utenti che sono attualmente collegati al sistema
  • Carica media degli ultimi 1, 5 e 15 minuti

Se vuoi solo le informazioni sull'uptime, usa il comando uptime.

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

Si noti che sia il comando w che uptime ottengono le informazioni dal file di dati /var/run/utmp.

18. /proc

/proc è un file system virtuale. Ad esempio, se esegui ls -l /proc/stat, noterai che ha una dimensione di 0 byte, ma se esegui "cat /proc/stat", vedrai del contenuto all'interno del file.

Esegui a ls -l /proc e vedrai molte directory con solo numeri. Questi numeri rappresentano gli ID di processo, i file all'interno di questa directory numerata corrispondono al processo con quel particolare PID.

Di seguito sono riportati i file importanti che si trovano in ciascuna directory numerata (per ogni processo):

  • cmdline – riga di comando del comando.
  • ambiente – variabili d'ambiente.
  • fd – Contiene i descrittori di file collegati ai file appropriati.
  • limiti:contiene le informazioni sui limiti specifici del processo.
  • monta:informazioni relative al montaggio

Di seguito sono riportati i collegamenti importanti in ciascuna directory numerata (per ogni processo):

  • cwd – Collegamento alla directory di lavoro corrente del processo.
  • exe – Collegamento all'eseguibile del processo.
  • root – Collegamento alla directory principale del processo.

Altri esempi di /proc:Esplora il file system /proc di Linux

19. Protezione del sistema di KDE

Questo è anche chiamato KsysGuard. Sui desktop Linux che eseguono KDE, puoi usare questo strumento per monitorare le risorse di sistema. Oltre a monitorare il sistema locale, questo può anche monitorare i sistemi remoti.

Se stai utilizzando il desktop KDE, vai su Applicazioni -> Sistema -> Monitor di sistema, che avvierà KsysGuard. Puoi anche digitare ksysguard dalla riga di comando per avviarlo.

Questo strumento mostra le seguenti due schede:

  • Tabella dei processi:mostra tutti i processi attivi. Puoi ordinare, uccidere o modificare la priorità dei processi da qui
  • Carico del sistema:visualizza i grafici per l'utilizzo di CPU, memoria e rete. Questi grafici possono essere personalizzati facendo clic con il pulsante destro del mouse su uno qualsiasi di questi grafici.

Per connettersi a un host remoto e monitorarlo, fare clic sul menu File -> Monitora macchina remota -> specificare l'indirizzo IP dell'host, il metodo di connessione (ad esempio, ssh). Questo ti chiederà il nome utente/password sulla macchina remota. Una volta connesso, questo visualizzerà l'utilizzo del sistema della macchina remota nelle schede Process Table e System Load.

20. Monitor di sistema GNOME

Sui desktop Linux che eseguono GNOME, puoi utilizzare questo strumento per monitorare processi, risorse di sistema e file system da un'interfaccia grafica. Oltre al monitoraggio, puoi anche utilizzare questo strumento dell'interfaccia utente per terminare un processo, modificare la priorità di un processo.

Se stai eseguendo il desktop GNOME, vai su Sistema -> Amministrazione -> Monitor di sistema, che avvierà GNOME System Monitor. Puoi anche digitare gnome-system-monitor dalla riga di comando per avviarlo.

Questo strumento ha le seguenti quattro schede:

  • Sistema:mostra le informazioni di sistema, inclusa la versione della distribuzione Linux, le risorse di sistema e le informazioni sull'hardware.
  • Processi:mostra tutti i processi attivi che possono essere ordinati in base a vari campi
  • Risorse:mostra l'utilizzo di CPU, memoria e rete
  • File system:mostra le informazioni sui file system attualmente montati

Maggiori informazioni:home page di GNOME System Monitor

21. Conky

Conky è un monitor di sistema o X. Conky visualizza le informazioni nell'interfaccia utente utilizzando ciò che chiama oggetti. Per impostazione predefinita ci sono più di 250 oggetti in bundle con conky, che mostra varie informazioni di monitoraggio (CPU, memoria, rete, disco, ecc.). Supporta IMAP, POP3, diversi lettori audio.

Puoi monitorare e visualizzare qualsiasi applicazione esterna creando i tuoi oggetti utilizzando lo scripting. Le informazioni di monitoraggio possono essere visualizzate in vari formati:testo, grafici, barre di avanzamento, ecc. Questa utility è estremamente configurabile.

Maggiori informazioni:screenshot di Conky

22. cactus

Cacti è un frontend dell'interfaccia utente basato su PHP per RRDTool. Cacti memorizza i dati necessari per generare il grafico in un database MySQL.

Di seguito sono elencate alcune funzionalità di alto livello di Cacti:

  • Possibilità di eseguire la raccolta dei dati e di archiviarli nel database MySQL (o negli archivi round robin)
  • Sono disponibili diverse funzionalità grafiche avanzate (raggruppamento di elementi grafici GPRINT, riempimento automatico per grafici, manipolazione dei dati grafici utilizzando la funzione matematica CDEF, tutti gli elementi grafici RRDTool sono supportati)
  • L'origine dati può raccogliere dati locali o remoti per il grafico
  • Possibilità di personalizzare completamente le impostazioni dell'archivio Round robin (RRA)
  • L'utente può definire script personalizzati per raccogliere dati
  • Supporto SNMP (php-snmp, ucd-snmp o net-snmp) per la raccolta dei dati
  • Il poller integrato aiuta a eseguire script personalizzati, ottenere dati SNMP, aggiornare file RRD, ecc.
  • Caratteristiche dei modelli di grafico altamente flessibili
  • Opzioni di visualizzazione dei grafici facili da usare e personalizzabili
  • Crea utenti diversi con vari set di autorizzazioni per accedere al frontend cactus
  • È possibile impostare livelli di autorizzazione granulari per il singolo utente
  • e molto altro ancora..

Maggiori informazioni:Pagina iniziale dei cactus

23. Vnstat

vnstat è un'utilità della riga di comando che visualizza e registra il traffico di rete delle interfacce sui sistemi. Ciò dipende dalle statistiche di rete fornite dal kernel. Quindi, vnstat non aggiunge alcun carico aggiuntivo al tuo sistema per il monitoraggio e la registrazione del traffico di rete.

vnstat senza alcun argomento ti fornirà un rapido riepilogo con le seguenti informazioni:

  • L'ultima volta in cui è stato aggiornato il database vnStat situato in /var/lib/vnstat/
  • Da quando ha iniziato a raccogliere le statistiche per un'interfaccia specifica
  • I dati statistici di rete (byte trasmessi, byte ricevuti) degli ultimi due mesi e degli ultimi due giorni.
# 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 |

Usa "vnstat -t" o "vnstat –top10" per visualizzare i primi 10 giorni di traffico di tutti i tempi.

$ 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
    ....
   -----------------------------+-------------+-------------+---------------

Altri esempi di vnstat:come monitorare e registrare il traffico di rete utilizzando VNStat

24. Inizio

htop è un visualizzatore di processi basato su ncurses. Questo è simile al top, ma è più flessibile e facile da usare. Puoi interagire con htop usando il mouse. Puoi scorrere verticalmente per visualizzare l'elenco completo dei processi e scorrere orizzontalmente per visualizzare l'intera riga di comando del processo.

L'output di htop è costituito da tre sezioni 1) intestazione 2) corpo e 3) piè di pagina.

Intestazione visualizza le tre barre seguenti e alcune informazioni vitali sul sistema. Puoi modificare uno qualsiasi di questi dal menu di configurazione htop.

  • Utilizzo CPU:Visualizza la %usata nel testo alla fine della barra. La barra stessa mostrerà colori diversi. Bassa priorità in blu, normale in verde, nocciolo in rosso.
  • Utilizzo della memoria
  • Utilizzo di scambio

Corpo visualizza l'elenco dei processi ordinati per % di utilizzo della CPU. Usa i tasti freccia, pagina su, pagina giù per scorrere i processi.

Piè di pagina visualizza i comandi del menu htop.

Maggiori informazioni:screenshot ed esempi HTOP

25. Statistiche socket – SS

ss sta per statistica socket. Visualizza informazioni simili al comando netstat.

Per visualizzare tutte le prese di ascolto, esegui ss -l come mostrato di seguito.

$ 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                :::*

Di seguito viene visualizzata solo la connessione stabilita.

$ 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)

Di seguito vengono visualizzate le statistiche di riepilogo del socket. Viene visualizzato il numero totale di socket suddiviso per tipo.

$ 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

Quale strumento usi per monitorare le prestazioni nel tuo ambiente Linux? Mi sono perso qualcuno dei tuoi strumenti di monitoraggio delle prestazioni preferiti? Lascia un commento.


Linux
  1. 4 Strumenti di monitoraggio delle prestazioni Linux basati su CLI:top, htop, ps e vmstat

  2. 5 migliori strumenti di monitoraggio Linux basati su terminale

  3. I migliori strumenti per acquisire e modificare schermate in Linux

  4. I 5 migliori strumenti di monitoraggio del sistema

  5. Le 20 migliori certificazioni e corsi di Red Hat Linux

I 10 migliori strumenti per la selezione dei colori per il sistema Linux

I 10 migliori strumenti di scansione per il sistema Linux

I 10 migliori strumenti meteo per il sistema Linux

I 10 migliori strumenti per informazioni di sistema e hardware Linux

8 migliori strumenti per misurare le prestazioni dei test di stress di Linux

Miglior editor di codice Linux:i primi 11 recensiti e confrontati