Come ridurre l'elevato utilizzo di RAM e CPU su Linux
Linux è un sistema operativo potente ed efficiente, ma un elevato utilizzo di RAM e CPU può degradare le prestazioni, rallentare le applicazioni e persino causare arresti anomali del sistema durante l'esecuzione di un server, una workstation o un sistema integrato e l'ottimizzazione dell'utilizzo delle risorse è essenziale per un funzionamento regolare.
In questa guida, esploreremo metodi pratici per ridurre l'utilizzo di RAM e CPU su Linux. Tratteremo gli strumenti di monitoraggio, la gestione dei processi, le modifiche al kernel e le tecniche di ottimizzazione del sistema per mantenere il sistema in esecuzione in modo efficiente.
1. Identificare i processi affamati di risorse
Il primo passaggio per ridurre l'utilizzo di RAM e CPU consiste nell'identificare i processi che consumano la maggior parte delle risorse utilizzando diversi strumenti da riga di comando:
un. Utilizzo del comando top
Il comando top fornisce una visione in tempo reale dei processi di sistema, incluso l'utilizzo della CPU e della memoria.
top
- Premere
P
per ordinare i processi in base all'utilizzo della CPU. - Premere
M
per ordinare i processi in base all'utilizzo della memoria. - Cercare i processi che consumano risorse eccessive e annotare il relativo ID processo (PID).
b. Utilizzo del 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 seguente comando appropriato per la distribuzione Linux specifica.
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]
Esegui htop
per visualizzare e gestire facilmente i processi.
htop
- Premere
F6
per ordinare i processi in base all'utilizzo della CPU o della memoria. - Premere
F9
per terminare un processo selezionato.
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
2. Uccidi i processi non necessari
Una volta identificati i processi che consumano risorse, è possibile terminarli per liberare risorse utilizzando il comando kill seguito dal PID.
kill PID
Se il processo non termina, usa il flag -9
per forzarlo a ucciderlo.
kill -9 PID
In alternativa, utilizzare il comando pkill per terminare i processi in base al nome.
pkill process_name
3. Ottimizza le applicazioni di avvio
Molte applicazioni e servizi si avviano automaticamente all'avvio, consumando preziose risorse di sistema.
Per gestire le applicazioni di avvio:
un. Utilizzo del comando systemctl
Elenca tutti i servizi abilitati utilizzando il comando systemctl.
systemctl list-unit-files --type=service | grep enabled
Disabilita i servizi non necessari.
sudo systemctl disable service_name
b. Utilizzo degli strumenti GUI
Se stai utilizzando un ambiente desktop come GNOME o KDE, usa il gestore delle applicazioni di avvio integrato per disabilitare i programmi non necessari.
4. Ridurre la swappiness (ottimizzare l'utilizzo dello swap)
Swappiness controlla la frequenza con cui il sistema utilizza lo spazio di swap anziché la RAM. Un valore di swappiness elevato può portare a uno swapping eccessivo, rallentando il sistema.
Per controllare il valore di swappiness corrente:
cat /proc/sys/vm/swappiness
Il valore predefinito è solitamente 60
, ma per ridurre la swappiness è necessario modificare il file /etc/sysctl.conf
.
sudo nano /etc/sysctl.conf
Aggiungere o modificare la riga seguente.
vm.swappiness=10
Salvare il file e applicare le modifiche.
sudo sysctl -p
5. Usa alternative desktop leggere
Gli ambienti desktop e le applicazioni pesanti possono mettere a dura prova le risorse di sistema, quindi è consigliabile passare ad 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.
- File Manager: Sostituisci Nautilus con Thunar o PCManFM.
6. Cancella cache e buffer
Linux utilizza la RAM per memorizzare nella cache i file e migliorare le prestazioni. Tuttavia, se necessario, è possibile cancellare manualmente la cache:
sudo sync; sudo sysctl -w vm.drop_caches=3
Questo comando cancella la pagecache, i dentry 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, è necessario modificare il file /etc/sysctl.conf
e aggiungere quanto segue o regolare i parametri 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 dirty vengono scritti su disco, riducendo l'utilizzo della RAM.
8. Riduci l'utilizzo della memoria con ZRAM
Zram e Zswap sono tecnologie di memoria compressa in grado di ridurre l'utilizzo della RAM.
sudo apt install zram-config
sudo systemctl start zram-config
Una volta installato, è necessario 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. Limitare l'utilizzo dei processi da parte della CPU
Se un processo sta monopolizzando la CPU, limitarne l'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 della CPU.
sudo cpulimit -e firefox -l 30
Per limitare permanentemente un processo, utilizzare systemd.
sudo systemctl set-property <service_name> CPUQuota=30%
10. Aggiorna regolarmente il tuo sistema
Mantenere aggiornato il sistema garantisce i miglioramenti delle prestazioni e le correzioni di bug più recenti.
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 termina con
kill
, usakill -9 PID
per forzarlo a ucciderlo. - Se
zram
ozswap
non funzionano, assicurati che il tuo kernel supporti queste funzionalità. - Se le prestazioni del sistema non migliorano, prendi in considerazione l'aggiornamento dell'hardware (ad esempio, l'aggiunta di più RAM o il passaggio a un SSD).
Conclusione
L'ottimizzazione dell'utilizzo della RAM e della CPU su Linux è una combinazione di monitoraggio, modifica e aggiornamento occasionale dell'hardware. Identificando i processi che consumano risorse, regolando le impostazioni di sistema e optando per alternative leggere, puoi dare nuova vita al tuo sistema.
Hai provato queste tecniche di ottimizzazione? Condividi la tua esperienza nei commenti qui sotto o visita linux-console.net per ulteriori guide e tutorial su Linux.