Cgroups Manager (Linux)
Un sito web in un hosting condiviso può consumare tutte le risorse del sistema e compromettere le prestazioni di altri siti web. Questo scenario è noto come «problema del vicino rumoroso».
Plesk Cgroups Manager è un’estensione che consente di affrontare il problema più facilmente gestendo il consumo di CPU, RAM e della larghezza di banda di scrittura e lettura disco.
Per ciascuna risorsa di sistema, Cgroups Manager consente di:
- Impostare una quantità massima (limite) per la risorsa consumata.
- Monitorare la quantità di risorsa consumata e inviare notifiche e-mail quando viene superato un determinato livello (soglia).
Puoi configurare Cgroups Manager e impostare il limite di risorsa consumata sui livelli seguenti:
- Per un piano di servizio, includendo tutti gli abbonamenti nel piano.
- Per un singolo abbonamento.
Nota: per utilizzare Cgroups su un server Plesk con un kernel personalizzato è necessario specificare vari parametri durante la compilazione del kernel.
Requisiti
Licenza di Plesk
Cgroups Manager è disponibile per le seguenti edizioni di Plesk:
- Plesk Web Pro
- Plesk Web Host
Se utilizzi il piano Ammin web e desideri gestire il consumo di risorse dei tuoi siti web, considera l’aggiornamento a Web Pro e la distribuzione dei siti web fra diversi abbonamenti.
Licenza dell’estensione
Cgroups Manager è un’estensione a pagamento. Può essere acquistata separatamente o come parte dell” Hosting Pack.
SO e sistema di inizializzazione
Cgroups Manager è disponibile per:
- Debian 8
- Ubuntu 16.04 e Ubuntu 18.04
- CentOS 7
- Red Hat Enterprise Linux 7
Per impostazione predefinita, tutte queste distribuzioni utilizzano il sistema di inizializzazione systemd, necessario per Cgroups Manager. In alternativa, è comunque possibile installare Plesk in Debian mediante il sistema di inizializzazione denominato System V. Per verificare il sistema di inizializzazione attuale, eseguire cat /proc/1/comm
nell’interfaccia a riga di comando.
Nota: Nota: se si installa Cgroups Manager in Debian mediante System V, Plesk lo sostituirà con systemd. Per rendere effettive le modifiche apportate, sarà quindi necessario riavviare il sistema manualmente, dopo l’installazione.
Limiti per Debian 8
Per impostazione predefinita, Cgroups Manager presenta funzionalità limitate in Debian 8, il cui kernel non supporta le limitazioni di utilizzo delle risorse della CPU e della RAM di cgroups. Ulteriori informazioni su Cgroups Manager per Debian 8 e possibile risoluzione.
Limitazioni per Virtuozzo 6 e 7
Plesk installato in un container Virtuozzo 6 può solo gestire la RAM. Plesk in un container Virtuozzo 7 può gestire la RAM e la CPU, ma non le operazioni di I/O su disco. Plesk installato in una macchina virtuale Virtuozzo non è affetto da queste limitazioni.
If your system does not meet some requirements, you can migrate Plesk to one that meets them.
Installazione
Per abilitare Cgroups Manager:
-
Installa il componente Resource Controller (Cgroups) utilizzando Plesk Installer:
-
Vai su Strumenti e impostazioni
-
Fai clic sul link Aggiornamenti
-
Fai clic sul link Aggiungi/Rimuovi componenti
-
Seleziona «Resource Controller (Cgroups)», quindi Continua.
Nota: Nota: se il componente richiesto non è incluso nell’elenco dei componenti disponibili, assicurati che il sistema soddisfi i requisiti.
-
-
Avvia il componente:
- Vai su Strumenti e impostazioni
- Fai clic sul link Gestione di servizi
- Avvia il servizio «Resource Controller (Cgroups)».
Configurazione di Cgroups Manager
Nota: Attenzione: una configurazione scorretta di Cgroups Manager può rallentare i siti web ospitati o persino renderli non più disponibili. Assicurati di aver letto e compreso le istruzioni in questo argomento prima di apportare qualsiasi modifica.
È possibile configurare Cgroups Manager sui seguenti livelli:
- Per un piano di servizio, includendo tutti gli abbonamenti nel piano.
- Per un singolo abbonamento.
Le impostazioni al livello dell’abbonamento hanno la priorità rispetto a quelle al livello del piano di servizio. Non è possibile utilizzare piani aggiuntivi per modificare le impostazioni di Cgroups Manager.
Una volta installato e avviato il servizio, diventano disponibili i seguenti strumenti di configurazione:
Strumento | Piano di servizio | Abbonamento |
---|---|---|
Plesk Panel (utilizza la visualizzazione Service Provider) |
|
|
CLI Plesk | Utilizza le opzioni -cgroups* dell’utility service_plan . |
Utilizza le opzioni -cgroups* dell’utility subscription_settings . |
API XML Plesk | Consultare la documentazione su Gestione di piani di servizio. | Consultare la documentazione su Gestione di abbonamenti. |
Limitazione del consumo di risorse
Impostazione dei limiti
La prima delle impostazioni disponibili per ogni risorsa gestita è il valore del limite. Ogni risorsa gestita ha un proprio valore limite. Per impostazione predefinita, i valori dei limiti non sono configurati, ovvero il consumo delle risorse non è limitato.
Gli abbonamenti possono condividere le impostazioni dei limiti, ma il consumo di ciascuna risorsa presenta un proprio limite.
Se il consumo di una risorsa è limitato per un determinato abbonamento:
- Cgroups Manager monitora tutti i processi appartenenti all’utente di sistema dell’abbonamento. In combinazione, questi processi non possono consumare più del valore limite di ciascuna risorsa.
- Se un abbonamento raggiunge il limite, il sistema operativo esegue una determinata azione, in base al tipo di risorsa.
- Un abbonamento non può superare il limite, anche se sul server sono disponibili risorse libere del tipo corrispondente (cicli della CPU inattivi, RAM libera, ecc.).
Se il consumo di una risorsa non è limitato per un determinato abbonamento:
- I processi dell’abbonamento possono utilizzare tutta la quantità disponibile della risorsa.
- La risorsa viene condivisa fra i processi di tutti gli abbonamenti:
- Il tempo della CPU e l’I/O su disco vengono condivisi quasi in parti uguali.
- La RAM viene condivisa come richiesto dai processi.
In entrambi i casi, non è garantito che un abbonamento riceva una quantità minima di risorsa.
Valori di impostazione consentiti per i limiti
Le impostazioni dei limiti possono presentare i seguenti valori:
Impostazione | Misurato in | Valori disponibili |
---|---|---|
Limite CPU | Percentuale di tempo della CPU, dove il 100% equivale a un core CPU completamente utilizzato | Non oltre il 100% * Numero di core CPU |
Limite di RAM | Byte | Non meno di 1 MB |
Velocità di input (scrittura) su disco | Byte al secondo | Non meno di 1 MB al secondo |
Velocità di output (lettura) da disco | Byte al secondo | Non meno di 1 MB al secondo |
Se il server è dotato di più core CPU, la quantità di CPU disponibile corrisponde a 100% moltiplicato il numero di core CPU. Ad esempio, se il server ha quattro core CPU, la quantità di CPU disponibile è pari al 400%.
Come il sistema gestisce il consumo di risorse
Quando i processi di un abbonamento specifico utilizzano il valore massimo consentito di una risorsa, il sistema operativo esegue determinate azioni, in base al tipo di risorsa.
Utilizzo eccessivo di risorse | Azioni | Impatto |
---|---|---|
CPU, larghezza di banda di lettura e scrittura disco | Il sistema riduce i processi di questo abbonamento, in modo che non utilizzi più risorse di quelle consentite dal limite. | I siti web corrispondenti potrebbero funzionare più lentamente e presentare un tempo di risposta superiore. |
RAM | Quando i processi di un abbonamento specifico raggiungono il limite della RAM, il sistema interrompe quello che consuma la maggiore quantità di memoria. | Il sito web corrispondente potrebbe risultare non disponibile per qualche tempo e rispondere alle richieste tramite codici HTTP 5xx. |
Monitoraggio e notifiche sul consumo di risorse
Impostazione di monitoraggio e notifiche
Una volta impostato il limite per una risorsa, è anche possibile configurare Plesk in modo da monitorare il consumo per tale risorsa.
Per attivare il monitoraggio, imposta i seguenti valori:
- Soglia («Notifica al superamento» in Plesk Panel).
- Periodo.
Per disattivare il monitoraggio, rimuovi il valore di soglia corrispondente.
Valori di impostazione consentiti per il monitoraggio
Le impostazioni di monitoraggio possono presentare i seguenti valori:
Impostazione | Misurato in | Valori disponibili |
---|---|---|
Limite CPU | Percentuale di tempo della CPU, dove il 100% equivale a un core CPU completamente utilizzato | Non superiore al valore del limite della CPU |
Limite di RAM | Byte | Non meno di 1 MB e non più del valore limite della RAM |
Velocità di input (scrittura) su disco | Byte al secondo | Non meno di 1 MB al secondo e non più del valore limite di scrittura su disco |
Velocità di output (lettura) da disco | Byte al secondo | Non meno di 1 MB al secondo e non più del valore limite di lettura disco |
Periodo di controllo (per qualsiasi risorsa) | Secondi | 300 (5 minuti), 3600 (1 ora) o 86400 (24 ore) |
Come il sistema esegue il monitoraggio
Quando attivi il monitoraggio per una o più risorse, Cgroups Manager inizia a monitorarne il consumo. Se hai abilitato il monitoraggio delle risorse a livello dell’abbonamento, viene monitorato il consumo di risorse per tale abbonamento. Invece, se hai abilitato il monitoraggio delle risorse a livello del piano di servizio, viene monitorato il consumo di risorse per tutti gli abbonamenti basati su tale piano di servizio:
- Ogni cinque minuti Cgroups Manager conteggia il consumo medio di risorse di un abbonamento e controlla se equivale o supera la
soglia
. - Alla scadenza di ogni
periodo
, Cgroups Manager verifica quante volte l’abbonamento ha superato lasoglia
durante l’ultimoperiodo
di tempo.- Se l’abbonamento ha superato la
soglia
in tutti gli intervalli di unperiodo
, Cgroups Manager invia una notifica e-mail. - Se ciò si protrae per un intervallo più lungo di un singolo
periodo
, non vengono inviate altre notifiche.
- Se l’abbonamento ha superato la
Esempio di monitoraggio
Questo esempio consente di comprendere meglio come Cgroups Manager esegue il monitoraggio e attiva le notifiche.
Un piano di abbonamento P presenta le seguenti impostazioni:
Impostazione | Valore |
---|---|
Limite CPU | 200% |
Soglia CPU | 160% |
Periodo di controllo CPU | 1 ora |
Come illustrato in precedenza, il 100% indica che un core della CPU viene utilizzato completamente.
Nel piano sono inclusi due abbonamenti: A e B.
Nell’abbonamento A, un’attività a uso intensivo della CPU viene seguita ogni ora e richiede circa 10 minuti. Per tali 10 minuti, i processi dell’abbonamento consumano più del 160% del tempo della CPU. Per l’intervallo rimanente, l’abbonamento consuma meno del 160% del tempo della CPU. Per le notifiche non è importante se si raggiunge il valore del limite.
Il sito web dell’abbonamento B gestisce un carico elevato. I processi dell’abbonamento consumano sempre un valore superiore al 160% del tempo della CPU.
Cgroups Manager conteggia il consumo medio a ogni intervallo di 5 minuti. Quindi, alla fine di un’ora, si ottengono i seguenti risultati:
- L’abbonamento A ha superato la soglia in due intervalli su 12. Cgroups Manager non invia alcuna notifica.
- L’abbonamento B ha superato la soglia in tutti e 12 gli intervalli. Cgroups Manager invia una notifica, ma non ne invia altre, se il carico continua.
Destinatari e contenuto delle notifiche
Per selezionare chi riceverà le notifiche:
- Accedi a Strumenti e impostazioni > Notifiche.
- Seleziona i destinatari richiesti accanto a CPU, RAM e I/O disco (Cgroups).
Il contenuto di ogni messaggio di notifica si basa su un modello. Per leggere e modificare il modello:
- Accedi a Strumenti e impostazioni > Notifiche.
- Fai clic sul pulsante più a destra accanto a CPU, RAM e I/O disco (Cgroups).
Per maggiori informazioni, consulta la documentazione sulle notifiche e-mail automatiche.
Restrizioni
Alcuni problemi tecnici e commerciali non si possono risolvere semplicemente con la gestione delle risorse:
- I clienti che, in una fase iniziale, hanno utilizzato le risorse in modo eccessivo probabilmente rileveranno un peggioramento delle prestazioni.
- Cgroups Manager non monitora, né limita il consumo di risorse per le applicazioni web Ruby, Python e Node.js che utilizzano Phusion Passenger.
Disattivazione di Cgroups Manager
Per nascondere la funzionalità di Cgroups Manager, aggiungere queste righe al file panel.ini:
[resourceController]
enabled = false