Ricerca nel sito web

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, usa kill -9 PID per forzarlo a ucciderlo.
  • Se zram o zswap 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.