Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Analizzare le performances di IIS 6 con gli strumenti di Windows

Gli strumenti di logging e di valutazione delle prestazioni di Windows per ottimizzare il Web server
Gli strumenti di logging e di valutazione delle prestazioni di Windows per ottimizzare il Web server
Link copiato negli appunti

L'ottimizzazione delle performance di un server web è un lavoro fondamentale da svolgere, consente infatti di avere sempre una chiara idea di come sta lavorando il server, se scala correttamente, se presenta dei rallentamenti o dei colli di bottiglia e consente all'amministratore di sistema di intervenire tempestivamente dove richiesto.

Esistono tre modi per ottimizzare le performance di IIS:

  • ottimizzando le configurazioni,
  • ottimizzando l'hardware,
  • ottimizzando la rete.

Per decidere su quale dei tre aspetti sia necessario intervenire bisogna servirsi degli strumenti di amministrazione di IIS e di Windows. Fondamentale è l'osservazione del server in varie situazioni, soprattutto nei momenti di maggior carico dove è più probabile che si verifichino rallentamenti o colli di bottiglia.

L'esperienza insegna che con un semplice tuning delle configurazioni è possibile risolvere situazioni apparentemente critiche o migliorare in maniera importante la produttività del server. Nell'ottimizzazione bisogna tener conto anche dell'utilizzo che si fa del server: saranno infatti differenti le configurazioni di un server Web che ospita pagine statiche rispetto a quelle di un server Web che ospita pagine dinamiche.

Una delle attività preliminari più importanti è quella di creare una "baseline", ossia raccogliere una serie di dati statistici indicativi dell'utilizzo del server. Questi dati ci aiutano a verificare che il carico sia corretto e ad individuare gli aspetti su cui intervenire nell'ottimizzazione.

In questo articolo dunque, ci soffermeremo su questi aspetti. Vedremo innanzitutto come poter creare una "baseline" efficace, dando una panoramica degli strumenti utili a tal proposito. Infine vedremo come sfruttare la baseline per ottimizzare le performance del server.

Analizzare le performance di un server IIS

Microsoft mette a disposizione diversi tool per l'analisi delle performance di un server. Dal più semplice taskmanager, ai più complessi e interessanti come "perfmon", un utile software che consente di verificare per esempio il carico degli hard disk, della cpu, della memoria e della rete.

Monitor di sistema

Il monitor di sistema consente di visualizzare lo stato del server in tempo reale sia in locale sia da remoto. Inoltre presenta un grafico che illustra il carico di sistema, aggiornato ad intervalli regolari definiti dall'utente. È possibile "loggare" i dati per un'analisi futura o per comparare archi temporali differenti.

Questo tool è molto utile per avere una fotografia istantanea del carico del server anche se non consente un'analisi approfondita. Infatti può essere utilizzato per verificare eventuali colli di bottiglia hardware, ma non per andare in profondità per capire l'origine del problema.

Log e alert di performance

Una caratteristica di Microsoft Windows 2003, è quella di consentire all'amministratore di creare, in base a criteri prescelti, un sistema di logging e di alert che si attivabile automaticamente per ogni calo di performance o rallentamento importante nel server. Ad esempio è possibile far eseguire un certo processo al sistema in caso di overload, oppure scrivere un file di log, e generare un report che raccolga tutti i dati necessari all'amministratore per valutare il rallentamento.

In alcuni casi, può essere molto utile programmare la macchina affinché invii notifiche via e-mail o SMS, che consentano un intervento tempestivo quando emergono problemi di una certa gravità.

L'analisi dei log di sistema non è comunque sufficiente, bisogna sempre confrontarli con i log di IIS, per verificare che i rallentamenti siano effettivamente dovuti ad operazioni del Web server.

Task manager

Il Task Manager è lo strumento più conosciuto anche dai "non professionisti". Consente di gestire i processi in esecuzione sotto Windows e di avere una reportistica istantanea sull'utilizzo dell'hardware e della connettività del server.

È importante come strumento di debug perchè consente di individuare con precisione i processi più esigenti quanto a potenza di calcolo e memoria. In certi casi, semplicemente dando uno sguardo al Task Manager, è possibile verificare l'esistenza di processi che creano colli di bottiglia, come un antivirus configurato male oppure un modulo IIS in loop.

Inoltre il Task Manager consente l'intervento immediato a liberare le risorse terminando i processi anomali. Questo consente di continuare a lavorare mentre si cerca di risolvere problema alla fonte.

Tracciamento degli eventi con il Log Manager

Una singola richiesta web passa per più livelli del sistema operativo, per questo motivo la stessa viene loggata in più fasi. Tramite l'utilizzo del Log Manager Tool (logman.exe) è possibile avere accesso a questa tipologia di dato che risulta molto utile nell'analisi di colli di bottiglia in quanto mette in luce eventuali misconfigurazioni o un livello non ottimale di tuning di IIS.

Affiancato dal Trace Report Tool (tracerpt.exe) è possibile generare dei report analitici da valutare quando si prendono in esame dei problemi sui server.

Network monitor

Il Network Monitor è un ulteriore strumento di analisi delle performance IIS studiato per tracciare la connettività. È un software piuttosto pesante che può intaccare le performance del server, ma si dimostra utile quando è necessario capire quali richieste utilizzano maggiore quantità di banda e quindi come intervenire alla risoluzione del problema.

Il Network Monitor colleziona il flusso di dati che passa attraverso una scheda di rete, per questo motivo risulta molto utile nella prevenzione, diagnosi e risoluzione dei problemi di rete.

È possibile configurare il Network Monitor affinché si attivi soltanto al verificarsi di determinate condizioni. Per esempio può essere utile loggare tutti i pacchetti di rete in movimento durante un rallentamento del server. Così facendo si può capire se un problema di rallentamento è dovuto al server Web, ad una richiesta malformata o ad una configurazione, e si può quindi intervenire in maniera precisa ed efficace.

I "Performance Counters"

I Performance Counters sono un sistema che serve a monitorare uno specifico componente hardware. Tramite i registri contatori, è possibile programmare una sessione di logging attraverso l'utilizzo di particolare identificatori che consentono il tracciamento di un componente hardware. È possibile configurare i registri contatori utilizzando perfmon.

Grazie a questo sistema di logging molto dettagliato si possono generare report approfonditi sull'utilizzo dell'hardware. Questi report, utilizzati in concomitanza a sistemi di alert, consentono all'amministratore di avere in qualsiasi momento tutti i dati statistici necessari all'individuazione di un particolare problema.

Windows 2003 fornisce moltissime tipologie di registri contatori, fra cui per esempio, il registro della cache, del processore, della memoria. IIS aggiunge un ulteriore quantitativo di registri contatori studiati appositamente per questo servizio. In particolare, abbiamo i registri contatori di:

  • WWW Service
  • WWW Service cache
  • FTP service
  • ASP pages
  • Monitorando costantemente questi registri è immediato valutare quale componente del sistema operativo, o del server Web, necessita di un tuning a livello di configurazione.

    Amministrare l'attività di rete

    È molto importante tenere sotto controllo l'utilizzo della rete, tra le principali cause del rallentamento di un Web server. Valutare i picchi di utilizzo e la quantità di dati fornibile contemporaneamente (banda massima in uscita) è dunque un processo critico durante la creazione di un server Web.

    Naturalmente si tratta di una misura impossibile da fare a priori, in quanto sono molteplici i fattori che decidono l'utilizzo della banda. È opportuno comunque cercare una previsione quanto meno approssimativa possibile per configurare al meglio il server affinché sfrutti nella maniera ottimale la banda disponibile.

    Bisogna valutare il tipo di applicazione che dovrà avere il server Web, cercando di stimare, a grandi linee, quanti visitatori dovrebbe gestire e che tipi di siti web: statici, dinamici, con molte immagini, video, etc.

    Sulla base di questi dati è possibile fare un calcolo preventivo di quanta banda necessita ogni singola richiesta. Ad esempio, una pagine in HTML puro, difficilmente supera i 5 kb di traffico, al contrario, un video, può portare via molti MegaByte.

    Pertanto, è necessario moltiplicare la quantità di traffico di ogni singola richiesta per il numero di connessioni TCP, il numero di richieste di tipo GET e il protocol overhead al fine di avere una stima della connettività necessaria. Bisogna infatti valutare che una singola richiesta è composta da più processi tra cui appunto, la richiesta del client, la risposta del server, e i dati necessari ai due computer per comunicare.

    È pertanto possibile generare una tabella che illustri una stima delle richieste servibili per secondo. A titolo informativo, si possono tenere presenti i seguenti dati:

    • una linea T1 (1.536 mbps) può servire fino a 26 pagine da 5 kb ciascuna al secondo
    • una 10 megabit può arrivare fino a 136

    Ponderare la quantità di banda necessaria al funzionamento di un server diventa un processo fondamentale in quanto, appunto, se il calcolo non viene effettuato in maniera corretta, si rischia di incappare immediatamente in un collo di bottiglia correggibile soltanto attraverso l'upgrade della connettività.

    Una volta valutata la quantità di banda necessaria al server, può essere utile andare a configurare in maniera minuta il server web per evitare che un singolo client possa saturare la connettività disponibile. Si consiglia quindi di porre un limite massimo di traffico utilizzabile da una singola richiesta (esempio. 50KBs) oppure di configurare differenti worker process con differenti limiti in funzione del tipo di dato che si va a servire.

    Conclusioni

    Abbiamo visto come analizzare le performances di IIS attraverso gli strumenti forniti dal sistema operativo. L'ottimizzazione dei singoli aspetti della configurazione di un server richiederebbe una analisi più puntuale caso per caso, ma almeno possiamo individuare le criticità per valutare poi la soluzione più adatta.

    Ti consigliamo anche