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.

  1. 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:

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:

sudo apt-get install htop  # Debian/Ubuntu
sudo yum install htop      # CentOS/RHEL

Com utilitzar htop:

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:

vmstat 5

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:

iostat 5

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:

netstat -tuln

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

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

  1. Optimització del Rendiment del Sistema

3.1 Optimització de la CPU

  • Ajustar la Prioritat dels Processos: Utilitzar nice i renice 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.
sysctl -w vm.swappiness=10  # Reduir la tendència a utilitzar swap
  • Utilitzar zram: Comprimir la memòria swap per millorar el rendiment.
sudo apt-get install zram-config  # Debian/Ubuntu

3.3 Optimització de l'I/O

  • Utilitzar iotop: Monitoritzar l'ús d'I/O per procés.
sudo apt-get install iotop  # Debian/Ubuntu
sudo iotop
  • Ajustar els Paràmetres del Sistema de Fitxers: Utilitzar opcions de muntatge com noatime per reduir les operacions d'I/O.
mount -o remount,noatime /  # Desactivar l'actualització de l'hora d'accés

3.4 Optimització de la Xarxa

  • Ajustar els Paràmetres de la Xarxa: Modificar els paràmetres de la xarxa per millorar el rendiment.
sysctl -w net.core.somaxconn=1024  # Augmentar la cua de connexions pendents
  • Utilitzar ethtool: Ajustar les opcions de les interfícies de xarxa.
sudo ethtool -K eth0 tso off  # Desactivar l'oferta de segmentació TCP

Exercicis Pràctics

Exercici 1: Monitorització amb top i htop

  1. Executa top i htop en el teu sistema.
  2. Identifica els processos que utilitzen més CPU i memòria.
  3. Compara la informació proporcionada per ambdues eines.

Exercici 2: Optimització de la Memòria

  1. Ajusta el paràmetre vm.swappiness a 10.
  2. Monitoritza l'ús de la memòria abans i després del canvi.
  3. Comprova si hi ha una millora en el rendiment del sistema.

Exercici 3: Optimització de l'I/O

  1. Utilitza iotop per identificar els processos que utilitzen més I/O.
  2. Ajusta les opcions de muntatge del sistema de fitxers per reduir les operacions d'I/O.
  3. 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

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats