GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi di base per risolvere i problemi di prestazioni in Linux

Di seguito è riportato l'elenco dei comandi del sistema operativo oltre ai comandi di base che sono utili per diagnosticare i problemi all'estremità del sistema operativo che causano prestazioni lente. Si noti che tutti i comandi sopra menzionati sono testati solo in un ambiente Linux.

Se sei pronto a rintracciare i tuoi problemi di prestazioni, ecco alcuni strumenti per iniziare:

  • sar :Con il pacchetto sysstat installato, utilizzare il comando sar per visualizzare le informazioni sull'attività per una serie di funzionalità del sistema o per avere un'idea dell'utilizzo delle risorse nel tempo. Una volta installati, i lavori sysstat cron raccolgono dati di sistema ogni 10 minuti che possono essere visualizzati in seguito con il comando sar. Con sar puoi anche visualizzare gli stessi tipi di dati in tempo reale.
  • dstat :creato in sostituzione di vmstat, iostat e ifstat, dstat offre molte opzioni per combinare e visualizzare diversi tipi di dati di sistema. Mostra i dati a colori e ti consente di presentare diverse informazioni nelle colonne che scegli. Con dstat, puoi visualizzare le statistiche sulla CPU del tuo sistema, l'I/O del disco, l'attività di rete, il paging, gli interrupt, le medie di carico, la memoria, i processi, i contatori di tempo e i file system. Usa dstat per confrontare l'attività del sistema in tempo reale per diversi tipi di risorse. Ad esempio, durante i download di file di grandi dimensioni, puoi confrontare l'attività della rete e del disco.
  • ps :Il comando ps è il modo comune per vedere quali processi sono in esecuzione. In combinazione con le opzioni, ps ti consente di scegliere quali colonne visualizzare per ciascun processo e ordinare i dati in base a una di queste colonne. Usa ps per visualizzare le informazioni su tutti o tutti i processi attualmente in esecuzione sul tuo sistema.
  • in alto :Con la parte superiore, puoi guardare una visualizzazione orientata allo schermo dei processi in esecuzione sul tuo sistema che viene aggiornata ogni pochi secondi. Puoi ordinare in base all'utilizzo della CPU o della memoria e uccidere o rinnovare i processi. Usa top per trovare immediatamente i tuoi processi più dispendiosi.
  • iostat :Principalmente, iostat consente di visualizzare le statistiche di I/O per i dispositivi (come dischi e interfacce di rete). Ciò è utile per controllare i colli di bottiglia di I/O perché i dati vengono visualizzati in base alla percentuale della capacità di lettura/scrittura del dispositivo.
  • mpstat :Il comando mpstat elenca l'utilizzo della CPU. Usa mpstat per vedere quanta CPU viene consumata e per avere un'idea generale della provenienza di tale consumo.
  • vmstat :elenca le statistiche sulla memoria con il comando vmstat. Se le prestazioni sono scarse, usa vmstat per vedere se la memoria è esaurita e se il sistema sta scambiando eccessivamente.
  • iptraf :per uno strumento grafico per monitorare il traffico di rete, eseguire il comando iptraf. Usa iptraf per vedere quali indirizzi IP specifici stanno generando la maggior parte del traffico di rete da e verso il tuo sistema.
  • tcpdump :questo strumento basato su testo ti consente di guardare i pacchetti che colpiscono le interfacce di rete selezionate e, facoltativamente, di filtrare quei pacchetti per cercare determinati tipi di attività. Usa tcpdump per rintracciare problemi di prestazioni relativi a servizi specifici:puoi scegliere di visualizzare solo i pacchetti destinati a un particolare servizio.
  • wireshark :questo strumento è una versione grafica di tcpdump, con molte funzionalità analitiche. Lo strumento include il supporto per la decodifica di molti protocolli comunemente usati e la loro visualizzazione in un'interfaccia utente grafica interattiva.

Ora, esaminiamo più a fondo alcuni degli strumenti che abbiamo appena elencato.

1. Output del comando “iotop” per ambiente Linux.

Il comando iotop è un'utilità simile a un top per l'I/O del disco. Controlla le informazioni sull'utilizzo dell'I/O emesse dal kernel Linux (richiede v2.6.20 o successiva) e visualizza una tabella dell'utilizzo dell'I/O corrente da parte di processi o thread sul sistema. Ciò richiede che l'utente root esegua il comando.

2. Per raccogliere le informazioni sulla cache del filesystem utilizzando l'output del comando "gratuito" per ottenere l'utilizzo della cache del filesystem:

  • Comando "free" per verificare l'utilizzo della memoria.
  • I "Buffer" rappresentano la quantità di RAM dedicata al blocco del disco della cache. "Cache" è simile a "Buffer", solo che questa volta memorizza nella cache le pagine dalla lettura dei file.
  • Un buffer è qualcosa che deve ancora essere "scritto" su disco.
  • Una cache è qualcosa che è stato "letto" dal disco e archiviato per un uso successivo.

3. Per controllare l'elenco delle patch del sistema operativo applicate in Linux utilizzando il comando seguente. Questo aiuterà a identificare i cambiamenti che CT ha fatto in passato:

# rpm -qa --last > last-rpms.txt
Nota :Questo elencherà le patch applicate con data e ora.

4. Per raccogliere le informazioni su Memoria/CPU/IO/NUMA ecc. per eventuali modifiche dall'output di dmesg. Può essere raccolto ogni 30 secondi:

– Per visualizzare le informazioni hardware relative alla porta Ethernet eth0:

$ dmesg | grep -i eth0

– Per visualizzare la memoria totale disponibile e i dettagli della memoria condivisa:

$ dmesg | grep -i Memory

– Per visualizzare le informazioni tty:

$ dmesg | grep -i tty

– Per visualizzare le informazioni NUMA:

$ dmesg | grep -i numa

– Per visualizzare le informazioni sui dischi rigidi:

$ dmesg | grep -i sda

– Per visualizzare le informazioni relative alla CPU:

$ dmesg | grep -i CPU

5. Per raccogliere il registro dei messaggi di sistema globali:

/var/log/messages
/var/log/dmesg

Il comando dmesg mostra il contenuto corrente dei messaggi del buffer dell'anello syslog del kernel mentre il file /var/log/dmesg contiene ciò che era in quel buffer dell'anello quando il processo di avvio è stato completato l'ultima volta. /var/log/dmesg rimane invariato fino al prossimo riavvio. I vecchi messaggi vengono sostituiti da nuovi messaggi nel buffer dell'anello.

dmesg è il sottoinsieme di /var/log/messages ed è mantenuto nel buffer dell'anello. /var/log/messages include tutti i messaggi di sistema incluso dall'avvio del sistema insieme ai messaggi in dmesg. In poche parole i log di dmesg vengono scaricati in /var/log/messages.

Nomi e utilizzo comuni dei file di registro di Linux:

  • /var/log/messages :messaggi generali e informazioni relative al sistema
  • /var/log/auth.log :Registri di autenticazione
  • /var/log/kern.log :registri del kernel
  • /var/log/cron.log :Registri Crond (processo cron)
  • /var/log/maillog :registri del server di posta
  • /var/log/qmail/ :Directory log di Qmail (più file all'interno di questa directory)
  • /var/log/httpd/ :Directory dei registri degli accessi e degli errori di Apache
  • /var/log/lighttpd/ :Directory dei registri degli accessi e degli errori di Lighttpd
  • /var/log/boot.log :Registro di avvio del sistema
  • /var/log/mysqld.log :file di registro del server di database MySQL
  • /var/log/secure o /var/log/auth.log :Registro di autenticazione
  • /var/log/utmp o /var/log/wtmp :File dei record di accesso
  • /var/log/yum.log :File di registro dei comandi Yum.

6. Per verificare se vengono utilizzate hugepage. Da eseguire solo all'inizio e alla fine della raccolta OSW:

# grep -i Hugepages /proc/meminfo
# cat /proc/meminfo

7. Per controllare il filesystem utilizzato nel sistema operativo. Da eseguire una sola volta:

# cat /etc/fstab

8. Per raccogliere le informazioni sull'attività del sistema per l'ultima settimana:

/var/log/sa contiene file per sa e sar che contengono le informazioni sulla cronologia dell'utilizzo della CPU.

# ls -al /var/log/sa | grep "Mar 12"
-rw-r--r--. 1 root root 721996 Mar 12 23:50 sa12
-rw-r--r--. 1 root root 655607 Mar 12 23:53 sar12

“sar -W -f /var/log/sa/sa12” – mostra le informazioni storiche di paging/scambio

# less /var/log/sa/sa12

9. Per ottenere le informazioni sulla CPU Arch:

# lscpu
# cat /proc/cpuinfo

10. Per ottenere le informazioni sulla memoria condivisa/semafori del kernel:

# ipcs -lm
# ipcs -ls
# cat /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmni
getconf PAGE_SIZE
# cat /proc/sys/kernel/shmall

11. Per ottenere informazioni sugli handle di file:

# cat /proc/sys/fs/file-max
# cat /proc/sys/fs/file-nr

12. Per ottenere informazioni su ulimit per Open file descriptors/maxproc:

# su - oracle
# ulimit -n
# ulimit -u

13. Per verificare la dimensione massima IO per richiesta IO:

# cat /sys/block/[device]/queue/max_sectors_kb

Per determinare la dimensione massima di I/O in byte quando si utilizza Asynch IO:

# cat /proc/sys/fs/aio-max-size

o

# cat /proc/sys/fs/aio-max-nr

14. Per mostrare il modello del dispositivo disco, gli standard, la configurazione, la capacità ecc:

Esempio:

# hdparm -I /dev/sda
# sudo hdparm -i /dev/sda

15. Per controllare la dimensione del blocco per un particolare dispositivo:

Esempio:

# blockdev --getbsz /dev/xvda1
# tune2fs -l /dev/vgxx/lvolx


Linux
  1. 40 comandi di base di Linux usati frequentemente

  2. 10 comandi di base di Linux che devi conoscere

  3. Utilizzo di nfsstat e nfsiostat per risolvere i problemi di prestazioni NFS su Linux

  4. Comandi Linux dalla A alla Z

  5. Come mandare in crash il tuo sistema:pericolosi comandi Linux

Comandi di base di Linux

4 comandi per spegnere Linux dal terminale

Comando Fsck in Linux

25 comandi di base di Linux che un principiante deve conoscere

Risolvi i problemi e monitora le prestazioni del sistema Linux con nmon

Utilizzo di vmstat per risolvere i problemi di prestazioni in Linux