Condividi tramite


Limitazione della CPU iis 8.0: siti e applicazioni sand boxing

di Shaun Eagan

Compatibilità

Versione Note
IIS 8,0 La limitazione della CPU è stata aggiornata in IIS 8.0 per includere opzioni di limitazione aggiuntive.
IIS 7,5 La limitazione della CPU non è stata modificata in IIS 7.5.
IIS 7.0 La limitazione della CPU è stata introdotta in IIS 7.0.

Problema

In una distribuzione multi-tenant, ad esempio un ambiente di hosting condiviso, è importante creare una scatola di sabbia per ogni tenant. Senza la sand-box, un tenant potrebbe influire intenzionalmente o involontariamente su altri tenant negativamente accedendo al contenuto di altri tenant o monopolizzando le risorse, ad esempio memoria, CPU e larghezza di banda.

Soluzione

In Internet Information Services (IIS) in Windows Server 2012, la casella di sabbia ha come ambito un pool di applicazioni IIS. Offre entrambi i limiti di sicurezza a livello di processo di Windows eseguendo ogni tenant in identità utente separata e le limitazioni delle risorse vengono applicate anche al processo.

In Windows Server 2012, la funzionalità di limitazione della CPU IIS consente ai clienti di limitare realmente la quantità di CPU che ogni tenant può utilizzare come percentuale di CPU. Inoltre, questa funzionalità è configurabile per ogni pool di applicazioni IIS, il che significa che ogni tenant potrebbe avere limiti diversi, il che può portare a un nuovo modello di business in cui i tenant possono pagare di più per limiti più elevati.

È importante chiarire che la limitazione della CPU IIS non è una prenotazione di una risorsa CPU. È piuttosto un modo per limitare l'utilizzo massimo.

Istruzioni dettagliate

Prerequisiti:

  • IIS viene installato in Windows Server 2012.

    • La limitazione della CPU IIS fa parte della configurazione del pool di applicazioni IIS. Pertanto, un'installazione predefinita di IIS avrà questa funzionalità installata. Non è presente alcuna funzionalità IIS specifica che deve essere installata da Server Manager.
  • Esiste almeno un sito con un pool di applicazioni IIS corrispondente.

    • Per questo esercizio è possibile usare Il sito Web predefinito e DefaultAppPool.

Soluzioni alternative per i bug noti:

Al momento non sono presenti bug noti per questa funzionalità.

Configurare la limitazione della CPU

  1. Aprire Gestione IIS.

  2. Selezionare Pool di applicazioni nella finestra di spostamento a sinistra:
    Screenshot che mostra il riquadro connessioni con i pool di applicazioni evidenziati.

  3. Selezionare DefaultAppPool:
    Screenshot che mostra la pagina Pool di applicazioni con DefaultAppTool evidenziato.

  4. Nel riquadro Azione selezionare Impostazioni avanzate:
    Screenshot del riquadro Azioni con impostazioni avanzate evidenziate.

  5. In Gruppo CPU individuare le configurazioni seguenti:
    Screenshot della finestra di dialogo Impostazioni avanzate. La sezione CPU è evidenziata.

    • Limite: indica l'utilizzo massimo della CPU (in 1000° di percentuale) per questo pool di applicazioni. Se sono presenti più processi associati a questo pool di applicazioni, il limite viene applicato alla somma totale di tutti i processi nel pool di applicazioni.

    • LimitAction: indica l'azione da eseguire quando viene raggiunto il valore limite superiore.

      • Per Windows Server 8 sono state aggiunte nuove azioni, Throttle e ThrottleUnderLoad :
        Screenshot della finestra di dialogo Impostazioni avanzate. L'azione limite è impostata su Limitazione.
      • Limitazione: la funzionalità limita il consumo della CPU al valore impostato per Limit.
      • ThrottleUnderLoad: la funzionalità limita il consumo della CPU al valore impostato per Limit, ma solo se è presente una contesa nella CPU. Ciò significa che il pool di applicazioni può utilizzare un maggior numero di attività della CPU quando la CPU è inattiva.
    • LimitInterval: non usato sia per Throttle che per ThrottleUnderLoad. Questo attributo di configurazione viene eseguito dalle versioni precedenti di Windows per garantire la compatibilità con le versioni precedenti.

  6. Per impostare il limite massimo del 30%, immettere:

    1. Limite: 30000 (30% nel 1000° di una percentuale)
    2. LimitAction: Throttle
      Screenshot della finestra di dialogo Impostazioni avanzate. Il limite è evidenziato.
  7. È tutto. Usando uno strumento di generazione del carico, inviare richieste al sito Web predefinito. È possibile usare uno strumento come WCAT (https://www.iis.net/community/default.aspx?tabid=34& g=6&i=1467) per generare traffico.

  8. Si noti che le impostazioni di configurazione in questione possono essere impostate come valori predefiniti in modo che non siano configurate singolarmente per ogni pool di applicazioni. Per configurare le impostazioni predefinite del pool di applicazioni, selezionare Imposta valori predefiniti del pool di applicazioni nel riquadro Azioni :
    Screenshot del riquadro Azioni. Impostare Le impostazioni predefinite del pool di applicazioni sono evidenziate.

  9. Le stesse impostazioni vengono esposte per configurare le impostazioni predefinite del pool di applicazioni:
    Screenshot della finestra di dialogo Impostazioni predefinite del pool di applicazioni. Il limite della CPU è evidenziato.

Scenari

Provare a distribuire gli scenari seguenti:

  • La funzionalità di limitazione della CPU IIS è progettata per un ambiente multi-tenant. Provare queste impostazioni in un ambiente in cui sono presenti migliaia di siti e applicazioni, ad esempio una distribuzione di hosting condivisa.
  • Impostare limiti diversi per diversi "gruppi" di tenant per simulare i clienti autorizzati a utilizzare più risorse della CPU rispetto ad altri.
  • Impostare ThrottleUnderLoad come LimitAction per osservare il comportamento. Funziona come Throttle, se sono presenti conflitti nella CPU. Se non sono presenti conflitti nella CPU, il pool di applicazioni può usare più risorse della CPU rispetto al valore impostato per Limit.
  • Creare un sand box con limiti di memoria e larghezza di banda, insieme alla funzionalità di limitazione della CPU IIS in Windows Server 2012. I limiti di memoria e larghezza di banda non vengono descritti in modo specifico in questa documentazione perché queste funzionalità esistono in Windows Server 2008 e Windows Server 2008 R2.

Riepilogo

È stata esaminata correttamente la funzionalità di limitazione della CPU IIS in Windows Server 2012.