Come Ridurre l’Utilizzo di RAM e CPU su Linux

Linux è un sistema operativo potente ed efficiente, ma un’elevata utilizzazione di RAM e CPU può degradare le prestazioni, rallentare le applicazioni e persino causare blocchi di sistema quando si esegue un server, una workstation o un sistema embedded, ed è essenziale ottimizzare l’utilizzo delle risorse per un funzionamento fluido.

In questa guida, esploreremo metodi pratici per ridurre l’utilizzo di RAM e CPU su Linux. Tratteremo strumenti di monitoraggio, gestione dei processi, regolazioni del kernel e tecniche di ottimizzazione di sistema per mantenere il sistema efficiente.

1. Identificare i Processi Esosi di Risorse

Il primo passo per ridurre l’utilizzo di RAM e CPU è identificare quali processi stanno consumando più risorse utilizzando diversi strumenti da riga di comando:

a. Utilizzando il Comando top

Il comando top fornisce una vista in tempo reale dei processi di sistema, inclusi l’utilizzo di CPU e memoria.

top
  • Premi P per ordinare i processi per utilizzo di CPU.
  • Premi M per ordinare i processi per utilizzo di memoria.
  • Cerca i processi che consumano risorse eccessive e annota il loro ID di processo (PID).
Real-Time System Process Monitoring

b. Utilizzando il Comando htop

htop è un visualizzatore di processi interattivo che fornisce un’interfaccia più user-friendly rispetto a top.

Per installare htop su Linux, utilizzare il comando appropriato per la propria distribuzione Linux.

sudo apt install htop         [On Debian, Ubuntu and Mint]
sudo dnf install htop         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/htop  [On Gentoo Linux]
sudo apk add htop             [On Alpine Linux]
sudo pacman -S htop           [On Arch Linux]
sudo zypper install htop      [On OpenSUSE]    
sudo pkg install htop         [On FreeBSD]

Eseguire htop per visualizzare e gestire facilmente i processi.

htop
  • Premere F6 per ordinare i processi per utilizzo della CPU o della memoria.
  • Premere F9 per terminare un processo selezionato.
htop – Interactive Process Viewer

c. Utilizzo del comando ps

Il comando ps può essere utilizzato per elencare i processi e il loro utilizzo delle risorse.

ps aux --sort=-%mem | head  # Top memory-consuming processes
ps aux --sort=-%cpu | head  # Top CPU-consuming processes
Check Memory Consuming Processes

2. Terminare Processi Non Necessari

Dopo aver identificato i processi che consumano molte risorse, è possibile terminarli per liberare risorse utilizzando il comando kill seguito dal PID.

kill PID

Se il processo non si termina, utilizzare l’opzione -9 per forzarne la chiusura.

kill -9 PID

In alternativa, utilizzare il comando pkill per terminare processi per nome.

pkill process_name

3. Ottimizzare le Applicazioni all’Avvio

Molte applicazioni e servizi partono automaticamente all’avvio, consumando preziose risorse di sistema.

Per gestire le applicazioni di avvio:

a. Utilizzando il comando systemctl

Elencare tutti i servizi abilitati utilizzando il comando systemctl.

systemctl list-unit-files --type=service | grep enabled

Disabilitare i servizi non necessari.

sudo systemctl disable service_name
List Enabled Services

b. Utilizzando Strumenti Grafici

Se si utilizza un ambiente desktop come GNOME o KDE, utilizzare il gestore delle applicazioni di avvio integrato per disabilitare i programmi non necessari.

4. Ridurre lo Swappiness (Ottimizzare l’Utilizzo della Swap)

Lo Swappiness controlla con quanta frequenza il sistema utilizza lo spazio di swap invece della RAM. Un valore di swappiness alto può portare a uno swapping eccessivo, rallentando il sistema.

Per verificare il valore attuale di swappiness:

cat /proc/sys/vm/swappiness

Il valore predefinito è di solito 60, ma per ridurre lo swappiness è necessario modificare il file /etc/sysctl.conf.

sudo nano /etc/sysctl.conf

Aggiungere o modificare la seguente riga.

vm.swappiness=10

Salvare il file e applicare le modifiche.

sudo sysctl -p

5. Utilizzare Alternative Desktop Leggere

Gli ambienti desktop pesanti e le applicazioni possono sforzare le risorse di sistema, quindi considera di passare a alternative leggere:

a. Ambienti Desktop

Sostituisci GNOME o KDE con opzioni più leggere come XFCE, LXDE, o MATE.

b. Applicazioni

Utilizza applicazioni leggere come:

  • Editor di testo: Sostituisci LibreOffice con AbiWord o Mousepad.
  • Browser web: Utilizza Firefox con meno estensioni o passa a browser leggeri come Midori.
  • Gestore file: Sostituisci Nautilus con Thunar o PCManFM.

6. Svuota Cache e Buffer

Linux utilizza la RAM per memorizzare file e migliorare le prestazioni. Tuttavia, puoi svuotare manualmente la cache se necessario:

sudo sync; sudo sysctl -w vm.drop_caches=3

Questo comando svuota la cache delle pagine, le voci dentries e gli inode. Usalo con cautela, poiché potrebbe rallentare temporaneamente l’accesso ai file.

7. Ottimizza i Parametri del Kernel

Per regolare o ottimizzare i parametri del kernel, devi modificare il file /etc/sysctl.conf e aggiungere i seguenti parametri o regolarli per migliorare le prestazioni del sistema.

vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0

Queste impostazioni controllano la frequenza con cui i dati sporchi vengono scritti su disco, riducendo l’uso della RAM.

8. Riduci l’Utilizzo della Memoria con ZRAM

Zram e Zswap sono tecnologie di memoria compressa che possono ridurre l’uso della RAM.

sudo apt install zram-config 
sudo systemctl start zram-config

Dopo l’installazione, devi modificare il file di configurazione di GRUB (/etc/default/grub) e aggiungere:

GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"

Aggiorna GRUB e riavvia:

sudo update-grub
sudo reboot

9. Limita l’Utilizzo della CPU dei Processi

Se un processo sta monopolizzando la CPU, limita il suo utilizzo utilizzando cpulimit.

sudo apt install cpulimit  # Debian/Ubuntu  
sudo yum install cpulimit  # RHEL/CentOS  

Limita un processo (ad esempio, firefox) al 30% di utilizzo CPU.

sudo cpulimit -e firefox -l 30

Per limitare permanentemente un processo, utilizza systemd.

sudo systemctl set-property <service_name> CPUQuota=30%

10. Aggiorna regolarmente il tuo sistema

Mantenere il tuo sistema aggiornato garantisce di avere gli ultimi miglioramenti delle prestazioni e correzioni di bug.

sudo apt update && sudo apt upgrade  # For Debian/Ubuntu
sudo yum update  # For CentOS/RHEL

Suggerimenti per la risoluzione dei problemi

  • Se un processo non si arresta con kill, utilizza kill -9 PID per forzarne l’arresto.
  • Se zram o zswap non funzionano, assicurati che il tuo kernel supporti queste funzionalità.
  • Se le prestazioni del sistema non migliorano, considera di aggiornare l’hardware (ad esempio, aggiungendo più RAM o passando a un SSD).
Conclusione

L’ottimizzazione dell’uso di RAM e CPU su Linux è una combinazione di monitoraggio, regolazioni e occasionali aggiornamenti hardware. Identificando i processi che consumano molte risorse, regolando le impostazioni di sistema e optando per alternative leggere, puoi ridare nuova vita al tuo sistema.

Hai provato queste tecniche di ottimizzazione? Condividi la tua esperienza nei commenti qui sotto o visita Tecmint.com per ulteriori guide e tutorial su Linux.

Source:
https://www.tecmint.com/reduce-ram-cpu-usage-on-linux/