En aquest tema, aprendrem com monitoritzar el rendiment del sistema Linux i com optimitzar-lo per assegurar-nos que funcioni de manera eficient. Aquestes habilitats són essencials per a qualsevol administrador de sistemes, ja que permeten identificar i resoldre problemes de rendiment abans que afectin els usuaris finals.
Objectius del Tema
- Entendre les eines de monitorització del sistema disponibles en Linux.
- Aprendre a interpretar les dades de rendiment.
- Implementar tècniques per optimitzar el rendiment del sistema.
- Eines de Monitorització del Sistema
1.1 top
top
és una eina de monitorització en temps real que mostra informació sobre els processos del sistema.
Com utilitzar top
:
Explicació de la sortida:
- PID: Identificador del procés.
- USER: Usuari que està executant el procés.
- PR: Prioritat del procés.
- NI: Valor de nice del procés.
- VIRT: Memòria virtual utilitzada pel procés.
- RES: Memòria resident utilitzada pel procés.
- SHR: Memòria compartida utilitzada pel procés.
- S: Estat del procés (R: en execució, S: en espera, D: en espera no interrompible, Z: zombi, T: aturat).
- %CPU: Percentatge de CPU utilitzat pel procés.
- %MEM: Percentatge de memòria utilitzat pel procés.
- TIME+: Temps total de CPU utilitzat pel procés.
- COMMAND: Comanda que ha iniciat el procés.
1.2 htop
htop
és una versió millorada de top
amb una interfície més amigable i funcionalitats addicionals.
Instal·lació de htop
:
Com utilitzar htop
:
Característiques addicionals:
- Navegació amb teclat i ratolí.
- Opcions de filtratge i ordenació.
- Visualització de l'ús de CPU per nucli.
1.3 vmstat
vmstat
proporciona informació sobre la memòria virtual, processos, CPU i I/O.
Com utilitzar vmstat
:
Explicació de la sortida:
- procs: r (processos en execució), b (processos en espera).
- memory: swpd (memòria swap utilitzada), free (memòria lliure), buff (memòria de buffer), cache (memòria de cache).
- swap: si (swap in), so (swap out).
- io: bi (blocs llegits), bo (blocs escrits).
- system: in (interrupcions per segon), cs (commutacions de context per segon).
- cpu: us (temps d'usuari), sy (temps de sistema), id (temps inactiu), wa (temps d'espera I/O).
1.4 iostat
iostat
mostra estadístiques d'entrada/sortida del sistema.
Com utilitzar iostat
:
Explicació de la sortida:
- Device: Nom del dispositiu.
- tps: Transaccions per segon.
- kB_read/s: Kilobytes llegits per segon.
- kB_wrtn/s: Kilobytes escrits per segon.
- kB_read: Total de kilobytes llegits.
- kB_wrtn: Total de kilobytes escrits.
1.5 netstat
netstat
proporciona informació sobre les connexions de xarxa, taules de rutes, estadístiques d'interfície, màscares de xarxa i connexions multicast.
Com utilitzar netstat
:
Explicació de la sortida:
- Proto: Protocol (tcp, udp).
- Recv-Q: Cua de recepció.
- Send-Q: Cua d'enviament.
- Local Address: Adreça local.
- Foreign Address: Adreça remota.
- State: Estat de la connexió (LISTEN, ESTABLISHED, etc.).
- Interpretació de les Dades de Rendiment
2.1 Identificació de Colls d'Ampolla
- CPU: Si el %CPU és alt, pot ser necessari optimitzar o redistribuir la càrrega de treball.
- Memòria: Si la memòria lliure és baixa, pot ser necessari augmentar la memòria física o optimitzar l'ús de memòria.
- I/O: Si les operacions d'I/O són lentes, pot ser necessari revisar els dispositius d'emmagatzematge o optimitzar les operacions d'I/O.
- Xarxa: Si hi ha problemes de xarxa, pot ser necessari revisar la configuració de la xarxa o augmentar l'ample de banda.
- Optimització del Rendiment del Sistema
3.1 Optimització de la CPU
- Ajustar la Prioritat dels Processos: Utilitzar
nice
irenice
per ajustar la prioritat dels processos.
nice -n 10 command # Executar una comanda amb una prioritat més baixa renice -n -5 -p 1234 # Canviar la prioritat d'un procés existent
- Distribució de la Càrrega de Treball: Utilitzar eines com
taskset
per assignar processos a nuclis específics.
3.2 Optimització de la Memòria
- Ajustar els Paràmetres del Kernel: Modificar els paràmetres del kernel relacionats amb la memòria.
- Utilitzar
zram
: Comprimir la memòria swap per millorar el rendiment.
3.3 Optimització de l'I/O
- Utilitzar
iotop
: Monitoritzar l'ús d'I/O per procés.
- Ajustar els Paràmetres del Sistema de Fitxers: Utilitzar opcions de muntatge com
noatime
per reduir les operacions d'I/O.
3.4 Optimització de la Xarxa
- Ajustar els Paràmetres de la Xarxa: Modificar els paràmetres de la xarxa per millorar el rendiment.
- Utilitzar
ethtool
: Ajustar les opcions de les interfícies de xarxa.
Exercicis Pràctics
Exercici 1: Monitorització amb top
i htop
- Executa
top
ihtop
en el teu sistema. - Identifica els processos que utilitzen més CPU i memòria.
- Compara la informació proporcionada per ambdues eines.
Exercici 2: Optimització de la Memòria
- Ajusta el paràmetre
vm.swappiness
a 10. - Monitoritza l'ús de la memòria abans i després del canvi.
- Comprova si hi ha una millora en el rendiment del sistema.
Exercici 3: Optimització de l'I/O
- Utilitza
iotop
per identificar els processos que utilitzen més I/O. - Ajusta les opcions de muntatge del sistema de fitxers per reduir les operacions d'I/O.
- Monitoritza l'ús d'I/O abans i després del canvi.
Resum
En aquest tema, hem après a utilitzar diverses eines de monitorització del sistema en Linux, com top
, htop
, vmstat
, iostat
i netstat
. També hem après a interpretar les dades de rendiment i a implementar tècniques per optimitzar el rendiment del sistema. Aquestes habilitats són essencials per mantenir un sistema Linux funcionant de manera eficient i fiable.
Domini de Linux: De Principiant a Avançat
Mòdul 1: Introducció a Linux
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades de la Línia de Comandes
- Ús de Comodins i Expressions Regulars
- Piping i Redirecció
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting de Shell
- Introducció al Scripting de Shell
- Variables i Tipus de Dades
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- Gestió de Discs
- Gestió de Paquets
- Monitorització del Sistema i Optimització del Rendiment
- Còpia de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxa
- Tallafocs i Seguretat
- SSH i Accés Remot
- Sistemes de Detecció d'Intrusions
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Optimització del Nucli de Linux
- Alta Disponibilitat i Balanceig de Càrrega