2016-02-15 5 views
11

Ho un grosso problema con una Webapp di Azure e vorrei ricevere suggerimenti.L'app Web di Azure ha carichi lenti e non attivati ​​(30s + carica)

ciò che sperimentiamo:

Quando ho goto nostro sito è abbastanza veloce. Il carico medio è di circa 1 secondo e risponde come previsto.

Tuttavia, una volta pr. 10-20 minuti, abbiamo un carico molto freddo - dove sono 30-60 secondi +.

Questo avrebbe senso se il sito Web non avesse visitatori ed era freddo, ma abbiamo 10+ visitatori online sul sito web tutti gli orari di lavoro con 3-5 richieste al minuto al minimo.

Questo carico aggiuntivo è completamente inaccettabile, naturalmente.

Qualche idea?

nostra messa a punto:

abbiamo due azzurre web-apps. Uno per la produzione e uno per lo sviluppo.

La produzione è un "STANDARD PICCOLO", con scala automatica quando la CPU raggiunge il 65-85%.

Il database è S2 con 10 GB.

È un sito ASP.NET MVC standard piuttosto semplice con alcuni testi, moduli e alcune connessioni remote.

L'unico "non standard" è 3 milioni di pagine indicizzate che esaminano un database (il caricamento della pagina è di circa 1 secondo). Questo riceve molti visitatori da Google. Riceviamo anche alcune ricerche per indicizzazione da Google poiché abbiamo una sitemap con 3 milioni di pagine.

dati dal monitor:

EDIT: i dati dal nuovo monitor.

enter image description here

Web-app:

enter image description here

database:

enter image description here

Le configurazioni:

produzione web-app:

enter image description here

Database:

enter image description here

I nostri tentativi:

1: Sempre attivo.

Abbiamo provato sempre più volte, ma a volte entro i primi 30 minuti a 6 ore, il sito va giù e non torna **. Questo è ovviamente un grosso problema e non è una soluzione.

2: esecuzione su una VM.

Abbiamo una configurazione piuttosto stabile e precisa su una VM su Azure (4gb RAM) che ha funzionato bene. Abbiamo avuto risposte abbastanza lente, ma ha funzionato bene. Tuttavia, vorremmo utilizzare l'applicazione web per "esternalizzare" la scala e la piattaforma Azure - noi non possiamo accettare questa velocità :)

**

Si va non risponde per sempre fino a quando un timeout. Ho provato due scenari: uno in cui ha funzionato l'arresto e l'avvio di un'applicazione web, un secondo in cui ho dovuto eseguire una ridistribuzione

+1

Quando si attiva "Sempre attivo", come va il sito? Quando dici che non ritorna, vuoi dire che devi fare una distribuzione completa per rendere di nuovo il tuo sito? – juvchan

+0

@juvchan Grazie per aver chiesto questa domanda. Non risponde per sempre fino a un timeout. Ho provato due scenari: uno in cui si è fermato e avviato l'applicazione web, un secondo in cui ho dovuto effettuare una ridistribuzione. –

+0

la tua esperienza è molto interessante e utile da imparare. – juvchan

risposta

1

Ho trovato una soluzione.

La soluzione non era solo in un posto, ma in più posti.

Vorrei cercare di tuffarsi in.

La sfida principale è stata la 3 milioni di pagine indicizzate che abbiamo. Google esegue la scansione tra 50-150k pagine giorno pr, che abbiamo potuto vedere in Google Webmaster Tools:

enter image description here

99,9% di queste pagine erano un unico tipo di pagine di indirizzi. Mi sono tuffato in questi, e ho scoperto che questi prendevano 1.5-2 in default (!). Era anche lento quando si correva verso il test.

Il passaggio n. 1 doveva creare un nuovo indice e ottimizzare il codice. 5x miglioramento delle prestazioni lì.

Ora, questo non risolve il problema da solo. Ho anche aggiornato entrambi i database al nuovo S3 ... Non ho risolto il problema completamente (ma ancora meglio).

Inoltre, ho aggiornato la nostra app Web di Azure alla versione 7gb e POI le cose hanno iniziato a funzionare.

Tuttavia, abbiamo ancora un piccolo problema ogni 30 minuti. Sono andato sulla nostra VM e ho trovato un vecchio lavoro di console che teneva un po 'di contenuto in ordine ... Ho interrotto quel lavoro.

Nessuno di questi risultati potrebbe stare da solo - ma dopo che tutti questi sono stati corretti - siamo di nuovo in buone condizioni e il sito Web risponde in modo accettabile!

Evviva!

3

Per aiutare a isolare ulteriormente il collo di bottiglia, potresti utilizzare il nuovo portale di Ibiza su http: portal .azure.com.

Il portale precedente, schermate sopra, mostra le medie di 54 minuti. Ovviamente con le medie a 5 minuti e le DTU a ~ 80% ci sono probabilmente periodi in cui tutte le DTU sono consumate e questo potrebbe essere il collo di bottiglia.

Utilizzando il nuovo portale, questi grafici DTU sono medie di 15 secondi e questa granularità più fine potrebbe indicare il collo di bottiglia. Puoi passare al nuovo portale e incollare altri grafici?

Grazie Guy

+0

Grazie per la tua risposta, sembra che rimanga in media del ~ 50% nella maggior parte delle volte ma pochi picchi nell'80-90%. Penso che un test ragionevole sarebbe quello di aggiornare il database a 2x DTU - Lo farò. Tuttavia, tutte le metriche sembrano ragionevoli nella mia mente. Sto pensando: potrebbe essere un problema DNS? Ho il problema quando goto anche pagine statiche con DB no o molto limitato. –