Conèixer el maquinari del teu equip i saber-lo vigilar és una part bàsica de l’administració de Linux: et permet entendre per què una màquina va lenta, si un disc és SSD o mecànic, si la CPU s’escalfa massa o si falta un controlador. En aquest post repasso els components principals i, per a cadascun, les eines per consultar-lo, vigilar-lo i ajustar-lo. Els exemples són d’un Raspberry Pi 4 amb Debian 13.
Processador (CPU)
La CPU executa les instruccions dels programes. Per saber quin processador tens:
$ lscpu | head -7
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: ARM
Model name: Cortex-A72
També pots llegir directament /proc/cpuinfo (una entrada per nucli) o fer nproc per saber només quants nuclis tens.
Vigilar-la: top ve amb qualsevol sistema; htop i btop (paquets del mateix nom) són més visuals.
Ajustar-ne la freqüència: el nucli canvia la velocitat de la CPU segons la càrrega, seguint una política (governor). Pots veure quina fa servir i quines té disponibles a /sys:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance schedutil
Per canviar-la, l’eina actual és cpupower (paquet linux-cpupower a Debian, kernel-tools a Fedora i RHEL), que substitueix l’antic cpufreq-set del paquet cpufrequtils, que ja no és a Debian 13:
cpupower frequency-info
sudo cpupower frequency-set -g performance
Normalment no cal tocar-ho: els valors per defecte equilibren bé rendiment i consum.
Memòria RAM i intercanvi (swap)
La RAM guarda les dades que els programes fan servir en cada moment. És molt ràpida, però volàtil: s’esborra en apagar.
$ free -h
total used free shared buff/cache available
Mem: 3.7Gi 1.6Gi 815Mi 91Mi 1.5Gi 2.1Gi
Swap: 2.0Gi 1.1Gi 905Mi
La columna important és available: la memòria que poden fer servir els programes nous. Que free sigui baixa no és cap problema, perquè Linux aprofita la memòria lliure com a memòria cau de disc (buff/cache) i l’allibera quan cal. El detall complet és a /proc/meminfo.
Per veure l’espai d’intercanvi actiu, swapon --show; i swapon/swapoff l’activen o desactiven. La tendència del sistema a fer servir l’intercanvi es controla amb vm.swappiness (0-200, per defecte 60):
$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 2G 1.1G 100
$ cat /proc/sys/vm/swappiness
60
Compte amb «alliberar la memòria cau». Hi ha qui recomana buidar la memòria cau escrivint a /proc/sys/vm/drop_caches. A més que la comanda que se sol copiar (sudo echo 3 > /proc/sys/vm/drop_caches) no funciona, perquè la redirecció la fa el teu usuari i no root, no té cap benefici en un ús normal: el sistema tornarà a llegir del disc el que acabes d’esborrar. Només té sentit per fer proves de rendiment. Si ho necessites, la forma correcta és:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
Emmagatzematge (HDD i SSD)
Els discos guarden el sistema i les dades. Els HDD són mecànics (plats que giren) i els SSD fan servir memòria flaix, molt més ràpida. Per saber de quin tipus és cada disc, mira la columna ROTA de lsblk (1 = disc rotatiu, 0 = SSD, targeta SD o similar):
$ lsblk -d -o NAME,ROTA,SIZE,MODEL
NAME ROTA SIZE MODEL
sda 1 931.5G ST1000LM024 HN-M101MBB
mmcblk0 0 119.1G
És el mateix valor que trobaràs a /sys/block/sda/queue/rotational. L’espai ocupat de cada sistema de fitxers el veus amb df -h, i l’estat de salut dels discos amb smartctl (paquet smartmontools).
Manteniment: als sistemes de fitxers de Linux (ext4, XFS, Btrfs) no cal desfragmentar. Als SSD sí que convé fer TRIM periòdicament perquè el disc sàpiga quins blocs ja no es fan servir. Ho fa fstrim, i la majoria de distribucions ja l’executen cada setmana amb un temporitzador de systemd:
$ systemctl is-enabled fstrim.timer
enabled
$ sudo fstrim -v / # executar-lo a mà
Targeta gràfica (GPU)
La GPU s’encarrega dels gràfics i dels càlculs en paral·lel. Per veure quina tens, lspci | grep -iE 'vga|3d' en un PC. Les gràfiques Intel i AMD funcionen amb els controladors lliures inclosos al nucli i a Mesa. Per a les NVIDIA cal sovint el controlador propietari:
- A Ubuntu:
sudo ubuntu-drivers listper veure’ls isudo ubuntu-drivers installper instal·lar el recomanat (l’anticautoinstallencara funciona, però està obsolet). - A Debian: el paquet
nvidia-driverdels repositorisnon-free.
Amb el controlador de NVIDIA instal·lat, nvidia-smi mostra l’ús, la memòria i la temperatura de la GPU.
Placa base i firmware
La placa base connecta tots els components. Per veure’n el model i la versió de la BIOS/UEFI (en PC; el Raspberry Pi no en té):
sudo dmidecode -s baseboard-product-name
sudo dmidecode -s bios-version
sudo lshw -short
dmidecode només consulta la versió; no actualitza res. Per actualitzar el firmware des de Linux, en molts equips (sobretot portàtils de Dell, Lenovo, HP…) pots fer servir fwupd:
fwupdmgr refresh
fwupdmgr get-updates
sudo fwupdmgr update
Dispositius d’entrada/sortida
Teclats, ratolins, memòries USB, càmeres… lsusb llista els dispositius USB i lspci els connectats al bus PCI. Quan connectes un dispositiu, el nucli ho registra; per veure-ho en directe:
sudo dmesg -w
o, amb systemd, journalctl -k -f. Si un dispositiu no funciona, és el primer lloc on has de mirar.
Temperatura i energia
- Temperatura:
sensors(paquetlm-sensors) en PC. Al Raspberry Pi,vcgencmd measure_tempo el fitxer/sys/class/thermal/thermal_zone0/temp(en mil·lèsimes de grau):
$ vcgencmd measure_temp
temp=69.6'C
- Consum:
powertop(paquet del mateix nom) mostra quins processos i dispositius gasten més energia i proposa ajustos, útil sobretot en portàtils. - Rendiment al llarg del temps:
atopregistra l’ús de CPU, memòria, disc i xarxa i et permet revisar què passava fa hores.
Resum d’eines
| Component | Consultar | Vigilar / ajustar |
|---|---|---|
| CPU | lscpu, /proc/cpuinfo, nproc | top, htop, cpupower |
| Memòria | free -h, /proc/meminfo | swapon --show, vm.swappiness |
| Discos | lsblk, df -h | smartctl, fstrim |
| GPU | lspci | nvidia-smi, ubuntu-drivers |
| Placa base | dmidecode, lshw | fwupdmgr |
| USB i dispositius | lsusb, lspci | dmesg -w, journalctl -k -f |
| Temperatura i energia | sensors, vcgencmd | powertop, atop |