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.