2014-12-22 19 views
9

Ho un file personalizzato deploy.cmd che utilizzo per la distribuzione del sito Web di Azure. Fa alcune cose su ordinazione come installare le versioni nodejs di Typescript e un minificatore, e quindi eseguire test di unità, prima di costruire e distribuire il sito stesso.Distribuzioni Kudu molto lente nei siti Web di Azure

Il problema che sto incontrando è che sembra essere sempre più lungo tempo per eseguire questo script, almeno su Azure. Sul mio computer portatile di sviluppo, ci vogliono circa 90 secondi per eseguire lo script deploy.cmd. Ma quando lo spingo su Azure, sono necessari circa 15-20 minuti per eseguire (e talvolta fino a 30-40 minuti). Non sono sorpreso che stia impiegando più tempo su un server web - I am un po 'sorpreso che ci vogliano più di 10 volte di più.

Ecco una versione ridotta del file di registro per un recente distribuzione:

Command: deploy.cmd 
18:54:16.89 - Starting deploy script 
18:54:19.92 - Installing typescript 
18:54:30.90 - Installing minifier 
18:54:44.62 - Restoring Nuget Packages 
18:55:48.25 - Building solution 
18:59:09.12 - Building test projects 
19:04:03.67 - Running Payboard.Common.Tests.dll 
19:04:19.80 - Running Payboard.Model.Tests.dll 
19:04:25.25 - Running Payboard.Services.Tests.dll 
19:06:29.72 - Running Payboard.Integrations.Tests.dll 
19:06:49.46 - Running Payboard.Web.Tests.dll 
19:07:56.99 - Beginning KuduSync 
19:08:03.16 - Finished successfully. 

Ovviamente è le due fasi di compilazione che stanno prendendo la maggior parte del tempo. Suppongo che potrei unirli in un unico passo di costruzione, anche se non sono completamente sicuro di come funzionerebbe con KuduSync.

Altri suggerimenti su come accelerare? O questo è praticamente previsto?

+0

Si tratta di un sito Web in esecuzione su livello gratuito, di base o standard? Qual è la dimensione dell'istanza? Potrebbe esserci un collo di bottiglia nell'elaborazione. Maggiori dettagli qui: http://azure.microsoft.com/en-us/pricing/details/websites/ –

+0

È standard con un singolo core. Proverò a farlo diventare un doppio core. –

+0

Solo seguito. Bumping la dimensione dell'istanza "Standard" fino a un doppio core non sembra aiutare. Il mio ultimo dispiegamento ha richiesto 30 minuti completi. –

risposta

0

Sospetto che con menzione di nodejs, ci siano un sacco di pacchetti npm da scaricare come parte del build. Sul tuo computer locale, questi sono già presenti ma Kudu li sta ripristinando in una cartella pulita ogni volta.

In secondo luogo, circa 5 minuti del tempo di costruzione vengono spesi per costruire (e probabilmente in esecuzione) progetti di test. A meno che non sia intenzionale e richiesto nel flusso di lavoro di distribuzione, consiglierei di disattivarlo tramite una bandiera.

+0

Sì, l'azzurro non può gestire i molti piccoli file dei pacchetti di nodi. Il suo sistema di archiviazione è lento come un'unità a nastro. –