1,602 21/03/2026 07/04/2026 3 min

Gestire un VPS con traffico elevato può portare a problemi di prestazioni se non si controllano adeguatamente le risorse. Utilizzare i cgroups (control groups) su Linux è una soluzione efficace per limitare l'uso della CPU, della memoria e di altre risorse. Questa guida ti mostrerà come configurare cgroups per migliorare le prestazioni del tuo server e garantire una distribuzione equa delle risorse tra i vari processi.

Prerequisiti

  • Distribuzione Linux (Ubuntu, Debian, CentOS, etc.)
  • Accesso come utente root o sudo
  • Kernel Linux con supporto per cgroups
  • Conoscenza di base della linea di comando

Step 1: Verifica il supporto per cgroups

Prima di tutto, è necessario assicurarsi che il tuo kernel Linux supporti i cgroups. Puoi farlo eseguendo il seguente comando:

ls /sys/fs/cgroup

# Output: Elenco delle sottodirectory per i diversi controller di cgroups (cpu, memory, etc.)

Perché funziona: Questo comando mostra le directory dei cgroups, confermando che il supporto è attivo.

Step 2: Creazione di un nuovo cgroup

Ora creiamo un nuovo cgroup per limitare l'uso della CPU. Scegliamo di limitare un processo specifico, come ad esempio un server web.

mkdir /sys/fs/cgroup/cpu/my_cgroup

# Output: Directory creata senza messaggi di errore

Perché funziona: Questo comando crea una nuova directory per il nostro cgroup, dove gestiremo le impostazioni delle risorse.

Step 3: Limitazione dell'uso della CPU

Configuriamo ora il limite di utilizzo della CPU per il nostro cgroup. Supponiamo di voler limitare l'uso della CPU al 50%.

echo 50000 > /sys/fs/cgroup/cpu/my_cgroup/cpu.cfs_quota_us

# Output: Nessun messaggio di errore

Perché funziona: Impostiamo il limite della quota di CPU in microsecondi (50% di un secondo).

Step 4: Aggiunta di processi al cgroup

Adesso dobbiamo aggiungere i processi che vogliamo limitare al nostro cgroup. Troviamo l'ID del processo (PID) del server web in esecuzione.

echo  > /sys/fs/cgroup/cpu/my_cgroup/cgroup.procs

# Output: Nessun messaggio di errore

Perché funziona: Questo comando aggiunge il processo al cgroup, applicando le limitazioni impostate.

Verifica finale

Per confermare che il cgroup stia funzionando correttamente, possiamo monitorare l'uso della CPU.

cat /sys/fs/cgroup/cpu/my_cgroup/cpu.stat

# Output: Statistiche sull'uso della CPU nel cgroup

Controlla i valori per confermare che l'uso della CPU non superi il limite impostato.

Troubleshooting

  • Errore: Permission denied
    Causa: Non hai i permessi necessari per modificare i cgroups.
    Soluzione: Esegui il comando con sudo.
  • Errore: Invalid argument
    Causa: Il valore impostato per cpu.cfs_quota_us non è valido.
    Soluzione: Assicurati che il valore sia un intero positivo e adeguato per il tuo sistema.
  • Errore: cgroup already exists
    Causa: Stai cercando di creare un cgroup con un nome già esistente.
    Soluzione: Rinomina o rimuovi il cgroup esistente prima di crearne uno nuovo.

Conclusione

Hai imparato a configurare e utilizzare i cgroups per limitare l'uso delle risorse su un server Linux. Questa tecnica è fondamentale per garantire prestazioni ottimali in ambienti con carichi elevati. Il prossimo passo è esplorare ulteriori configurazioni avanzate per ottimizzare ulteriormente la gestione delle risorse con cgroups.