Scalabilità verticale con più pool di app

Stiamo eseguendo un'applicazione ASP.Net che sta chiamando anche alcuni oggetti COM esistenti. Stiamo eseguendo in un problema in cui con un numero maggiore di utenti l'object COM sta creando un collo di bottiglia poiché esegue lo stesso thread / process come il pool di app.

Al momento disponiamo di un bilanciere di carico hardware e usiamo le sessioni appiccicose per bilanciare il carico tra due server. Purtroppo questo non sembra abbastanza. Abbiamo eseguito test utilizzando più pool di applicazioni, ognuna delle quali è in esecuzione la stessa applicazione e le performance sembrano migliorare significativamente.

  • Qualsiasi analizzatore di log IIS freeware?
  • "VBScript scritto di scripting sconosciuto" IIS 7.5 + 2008 R2 SP1
  • Come faccio a completare Apache per eseguire script Perl dopo che il browser web è chiuso?
  • Distriggerszione del riciclaggio sovrapposto in IIS 6.0
  • Strani colpi IIS provenienti da Trend Micro
  • Problema di stato di session ASP.NET del server Web IIS 7.5 bilanciato
  • Ho due domande.

    1. È saggio aggiungere più pool di app, tutti indicando gli stessi file fisici?
    2. Utilizziamo ancora l'equilibratore di carico hardware. Tutte le richieste che arrivano a app.xxxxxx.com verranno reindirizzate ad esempio app1.xxxxxx.com, app2.xxxxxx.com, app3.xxxxxx.com, app4.xxxxxx.com. Ognuno è un pool di app sullo stesso server. È una pratica comune?
    3. Il server dispone di 16 core. Avrebbe senso avere affinità di processre di impostazione, per dedicare each pool di app per eseguire su 4 nuclei?
    4. Siamo bloccati usando le sessioni di InProc. A causa di questo non stiamo neanche considerando l'utilizzo di Web Garden. Inoltre da quello che ho letto Web Garden è più per migliorare la disponibilità rispetto alle performance.

    Io sono uno sviluppatore per il commercio e mi è caduto su di ricerca / eseguire questi compiti e un sacco di questo è stato un process di apprendimento per me.

    Grazie

    One Solution collect form web for “Scalabilità verticale con più pool di app”

    Hai una situazione abbastanza unica in cui COM diventa un collo di bottiglia in modo che non si possa semplicemente scalare. Migliorando in modo ottimale le performance con gli oggetti COM o sostituendoli con codice gestito ridurrebbe ancora di più, ma sei sulla buona strada per una soluzione di performance COM.

    1. IIS è in grado di gestire centinaia di pool di app, quindi non è un problema. Aggiungerà un paio di MB di RAM per each pool di app, ma senza sovraccarico di performance aggiuntive.

    2. Sicuro. Da pool di app, suppongo che ognuno sia un sito completo con un proprio pool di applicazioni. Tutto bene.

    3. Se non è necessario, non modificare l'affinità del processre perché significa che è necessario mantenerlo e modificarlo per sempre. Se l'utilizzo della CPU è piuttosto piatto, allora siete buoni con i valori predefiniti. Se si dispone di altre applicazioni sul server o se si visualizza un grande squilibrio, quindi considerare l'affinità del processre. IIS fa un ottimo lavoro di utilizzarli per la maggior parte però, quindi è meglio lasciarlo fare il lavoro pesante se ansible.

    4. Come si dice, le sessioni appiccicose si rivolgono a questo, quindi sei bravo. I giardini web potrebbero aver risolto i problemi relativi al tuo COM se non si è preoccupato dello stato della session di InProc. Da un lato, è ansible considerare l'utilizzo del server di stato di ASP.NET. Occorre che ciascun server utilizzi il server di stato locale e che l'operatore di bilanciamento del carico utilizzi le sessioni adesive con un impegno per server. Questo indirizzerebbe lo stato della session (finché tutto si serializza, di solito) e ti permetterà di giocare facilmente con le impostazioni del giardino web senza wherer affrontare il bilanciatore del carico.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.