2015-03-24 20 views
7

Stiamo spostando una serie di ruoli Web dei servizi cloud nei siti Web di Azure, attualmente in esecuzione sul piano del piano di app/livello dei prezzi, livello 1 standard.Utilizzo siti Web di siti Web di Azure per più siti Web con le stesse DLL

I siti Web sono tutti identici e ad un certo punto ri-scriveremo codice base per essere correttamente multi-affittato. Tuttavia, attualmente li ospitiamo come più siti Web su un singolo piano di hosting Web di Azure.

In termini di utilizzo della memoria, Azure condivide le Dll identiche, ad es. tutti i pacchetti Nuget/Dll di applicazione principale? O abbiamo bisogno di memoria sufficiente per caricare una copia di ogni Dll per siti web? Spero davvero di condividere che tu possa condividere gli assembly comuni attraverso AppPools.

Ho visto menzionare le impostazioni che MS stava aggiungendo a IIS per supportare una migliore densità per i provider di hosting condiviso. Credo. Net 4.5 ha aggiunto il supporto per interned Dll. Esistono impostazioni ecc che influiscono sul modo in cui Azure gestisce questa situazione? Attualmente stiamo utilizzando il consumo di memoria del 94% dei nostri 3,5 GB e volevamo capire se avremmo avuto bisogno di scalare presto. Spero che Azure sia in grado di fare qualcosa sotto le coperte poiché ovviamente la MS vuole massimizzare la densità.

+0

Una domanda interessante, hai provato a utilizzare questo aspnet_intern.exe in uno dei tuoi ruoli web. Non credo che microsoft esegua interning sui siti web come modello di hosting condiviso. – Saravanan

+0

No. Non abbiamo mai avuto bisogno di aspnet_intern sui ruoli web dato che ogni cliente aveva il proprio ruolo web. Per i siti Web non abbiamo utilizzato l'opzione di hosting condiviso. Non ho idea di come MS abbia questa configurazione internamente – GraemeMiller

+0

che ho appena postato su Twitter a Scott Hanselman e Vettorio. Aspettiamo che rispondano, sono gli esperti a cui riesco a pensare in MS – Saravanan

risposta

2

Ogni WebApp è isolata dal pool di app, quindi se si dispone di più copie dello stesso sito, anche se sono identiche, caricheranno tutte la propria copia dell'assieme in memoria.

C'è anche la sandbox di sicurezza a causa della natura multitenant del servizio, quindi l'interning non funzionerà in questo modo.

Per monitorare l'utilizzo della memoria, è possibile consultare il piano di servizio dell'app. Utile anche Process Explorer (WebApp> Strumenti> Process Explorer)

+0

Se ho un singolo grande server riservato non è quello mio però? O altri utenti condividono quell'istanza di IIS? Se non potessi non lavorare all'estero? Immagino che probabilmente non è uno scenario comune. – GraemeMiller

+0

Attualmente ho 238 siti Web che condividono più DLL (32 di loro), sarebbe perfetto per essere in grado di "internare" questi. Ho scoperto che devo tenere ogni server web all'80% della memoria altrimenti durante le ore di punta si esauriscono e tutti i siti non rispondono. Ho creato un feedback azzurro per questo: https://feedback.azure.com/forums/169385-web-apps-formerly-websites/suggestions/8274744-ability-to-effectively-intern-dlls-across-an-app –

Problemi correlati