Domanda

Vorrei chiederti qual è l'impostazione migliore per una seguente applicazione:

Sito Web ASP.NET 3.5 - utilizzato come livello di presentazione, molti AJAX e JS. Non colpirà molto il server.

ASP.NET WCF: servizio che fornisce tutti i dati all'applicazione. È responsabile della convalida, della modellazione / preparazione dei dati e della comunicazione con il DB Server.

Database - SQL Server 2005 Std, parte della logica è codificata sul lato server come stored procedure. Parte della logica può richiedere un po 'di tempo. Secondo me è la parte dell'app che consuma più risorse.

Il sito Web può avere fino a 1000 utenti al minuto. Possiamo avere fino a 4 server nella seguente configurazione: Intel Bi Xeon Quad 8x 2.00+ GHz, 16 GB RAM, unità SSD o RAID.

Qual è il modo migliore per posizionare parti dell'applicazione sui server fisici? Gestiranno questo tipo di carico?

È stato utile?

Soluzione

Nell'applicazione che descrivi, sospetto che la gestione dei thread sarà un grosso problema. Lanciare hardware al problema potrebbe non essere l'approccio migliore.

In termini di partizionamento, dipende dal fatto che sia possibile sfruttare cose come la cache e le notifiche della cache. Se ogni chiamata all'app deve colpire il DB ed eseguire una lunga procedura memorizzata, allora potresti voler avere più macchine DB e meno server Web front-end.

Questo è un argomento importante. Nel tentativo di fornire una risposta ragionevolmente completa a questo tipo di domande, ho finito per scrivere un libro al riguardo: Ultra-Fast ASP.NET: creare siti Web ultra-veloci e ultra-scalabili utilizzando ASP.NET e SQL Server .

Altri suggerimenti

Il posto meno scalabile in qualsiasi applicazione è il server di database, è possibile aggiungere più server Web e applicativi ma non è possibile replicare il DB con la stessa facilità, quindi si trarrà vantaggio a lungo termine se il DB non conterrà alcuna logica, in particolare qualsiasi logica di lunga durata. In molte applicazioni il fattore limitante non è la CPU, ma la memoria pensa alle sessioni utente se si memorizzano 1 mb di dati per utente, le applicazioni saranno in grado di supportare 64.000 sessioni utente di silmantanius con le macchine, potrebbe essere sufficiente o meno. Entrambi i problemi possono essere mitigati utilizzando la memorizzazione nella cache a livello di applicazione, ma ciò può causare il proprio set di problemi perché ora si è confrontati con dati non aggiornati. Per ridimensionare i siti basati su sessione, sarà necessario utilizzare una soluzione di bilanciamento del carico intelligente che supporti sessioni appiccicose, per i carichi molto probabilmente sarà necessario il bilanciamento del carico hardware.

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