Riassunto: Un sito web con hosting condiviso può consumare tutte le risorse del sistema e rallentare le prestazioni degli altri siti, provocando il cosiddetto problema del «noisy neighbor». Plesk Cgroups Manager è un’estensione che consente di affrontare questo problema attraverso la gestione del consumo di CPU, RAM, larghezza di banda di lettura e scrittura su disco da parte dei clienti.

In questa sezione imparerai a installare e configurare l’estensione Plesk Cgroups Manager. Inoltre, scoprirai come utilizzarla per monitorare e controllare il consumo di risorse da parte dei clienti.

Nota: questo problema riguarda solo i server Plesk utilizzati per l’hosting condiviso. Se utilizzi un server Plesk Web Admin, questa sezione non dovrebbe essere rilevante.

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.

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.

Limitazioni

  • Cgroups Manager non può limitare il consumo di risorse delle estensioni Plesk e dei servizi personalizzati installati manualmente. Questo vale per tutte le estensioni di Plesk: LiteSpeed non fa eccezione.
  • Cgroups Manager in un container Virtuozzo 7 può gestire la RAM e la CPU, ma non l’I/O del disco. Cgroups Manager in una macchina virtuale Virtuozzo non ha questa limitazione. Per usare Cgroups Manager senza tale limitazione, esegui la migrazione del tuo Plesk da un container Virtuozzo 7 a un altro SO.

Installazione

Per abilitare Cgroups Manager:

  1. Installa il componente Resource Controller (Cgroups) utilizzando Plesk Installer:

    1. Apri Strumenti e impostazioni > Aggiornamenti (in «Plesk») > Aggiungi/Rimuovi componenti.

    2. Seleziona «Resource Controller (Cgroups)», quindi Continua.

      Nota: Se il componente richiesto non è incluso nell’elenco dei componenti disponibili, assicurati che il sistema soddisfi i requisiti.

  2. Avvia il componente:

    1. Vai su Strumenti e impostazioni
    2. Fai clic su Gestione di servizi (in «Gestione del server»)
    3. Avvia il servizio «Controller risorse (Cgroups)».

Configurazione di Cgroups Manager

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)
  1. Vai su Piani di servizio.
  2. Fai clic sul piano di servizio per il quale desideri configurare Cgroups Manager.
  3. Apri la scheda «RAM, CPU, I/O disco».
  1. Vai su Abbonamenti.
  2. Fai clic sull’abbonamento per il quale desideri configurare Cgroups Manager.
  3. Fai clic su Personalizza > apri la scheda «RAM, CPU, I/O disco».
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 al 100% moltiplicato per il numero di core CPU. Ad esempio, se il server ha quattro core CPU, la quantità di CPU disponibile è pari al 400%.

image limit cpu

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:

  1. Ogni cinque minuti Cgroups Manager conteggia il consumo medio di risorse di un abbonamento e controlla se equivale o supera la soglia.
  2. Alla scadenza di ogni periodo, Cgroups Manager verifica quante volte l’abbonamento ha superato la soglia durante l’ultimo periodo di tempo.
    • Se l’abbonamento ha superato la soglia in tutti gli intervalli di un periodo, 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.

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:

  1. Vai a Strumenti e impostazioni > Notifiche (in «Plesk»).
  2. 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:

  1. Vai a Strumenti e impostazioni > Notifiche (in «Plesk»).
  2. 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.

Integrazione di Cgroups Manager con l’estensione Monitoring

Puoi integrare Cgroups Manager con l”estensione Monitoring. Questo permette ai clienti di vedere quanto consumino le risorse del loro abbonamento e permette inoltre all’amministratore di Plesk di visualizzare e comparare l’utilizzo di risorse di fino a dieci abbonamenti.

Scopri come integrare Cgroups Manager con l’estensione Monitoring.

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