Domanda

Quanto traffico può gestire un server web?Qual è il modo migliore per vedere se siamo andati oltre?

Ho un'applicazione ASP.Net che ha un paio di centinaia di utenti.Alcuni suoi aspetti richiedono un uso piuttosto intensivo del processore, ma finora abbiamo funzionato bene con un solo server per eseguire sia SqlServer che il sito.Funziona con Windows Server 2003, 3,4 GHz con 3,5 GB di RAM.

Ma ultimamente ho iniziato a notare rallentamenti in vari momenti e mi chiedevo quale sia il modo migliore per determinare se il server è sovraccaricato dall'utilizzo dell'applicazione o se devo fare qualcosa per riparare l'applicazione (non lo so voglio davvero dedicare molto tempo alla ricerca di piccole ottimizzazioni se mi aspetto troppo dalla scatola).

È stato utile?

Soluzione

Ciò di cui hai bisogno sono alcune informazioni su Pianificazione della capacità..

La pianificazione della capacità è il processo di pianificazione della crescita e di previsione dei periodi di picco di utilizzo al fine di soddisfare i requisiti di capacità del sistema e delle applicazioni.Implica test approfonditi delle prestazioni per stabilire l'utilizzo delle risorse dell'applicazione e il throughput delle transazioni sotto carico.Innanzitutto, si misura il numero di visitatori che il sito riceve attualmente e la quantità di domanda che ciascun utente pone sul server, quindi si calcolano le risorse di elaborazione (CPU, RAM, spazio su disco e larghezza di banda di rete) necessarie per supportare le attuali e future esigenze. livelli di utilizzo.

Altri suggerimenti

Se hai accesso ad alcuni strumenti di profilazione (come quelli nell'edizione Team Suite di Visual Studio) puoi provare a configurare un server di test ed eseguire alcune richieste sintetiche su di esso e vedere se c'è qualche parte specifica del codice che impiega tempi irragionevolmente lunghi correre.Probabilmente dovresti controllare alcuni grafici sull'utilizzo della CPU e della memoria nel tempo prima di farlo, per vedere se può essere anche quello.(Un numero simile al "carico medio" di UNIX potrebbe essere un parametro utile, non so se Windows abbia qualcosa di simile.Fondamentalmente il numero medio di thread che richiedono tempo CPU per ogni intervallo di tempo.)

Controlla anche l'ovvio, che non stai esaurendo la larghezza di banda.

Misurare, misurare, misurare.Rico Mariani lo dice sempre, e ha ragione.

Misura richiesta/sec, RAM, CPU, sessioni, ecc.

Potresti elaborare una strategia di memorizzazione nella cache (caching dell'output, memorizzazione nella cache dei dati, dipendenze della memorizzazione nella cache e così via).

Guarda anche come sta andando il tuo SQL Server...gli indici sono un buon punto di partenza ma non l'unica cosa da guardare..

Su tale hardware, un'applicazione .NET dovrebbe essere in grado di servire circa 200-400 richieste al secondo.Se hai solo poche centinaia di utenti, dubito che vedrai anche 2 richieste al secondo, quindi penso che tu abbia molta capacità su quella macchina, anche con il server SQL in esecuzione.

Senza conoscere tutti i dettagli, direi NO, non vedrai alcun miglioramento delle prestazioni aggiungendo server.

A proposito, se non stai utilizzando il file Cache di output, inizierei da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top