2014-12-22 58 views
9

我有一個自定義的deploy.cmd文件,我用它來部署Azure網站。它在構建和部署網站本身之前執行一些自定義的事情,例如安裝Typescript和縮小器的nod​​ejs版本,然後運行單元測試。Azdu網站上非常緩慢的Kudu部署

我遇到的問題是它似乎需要越來越長的時間來運行此腳本,至少在Azure上。在我的開發筆記本電腦上,大約需要90秒來運行deploy.cmd腳本。但是當我在Azure上推出它時,需要15-20分鐘的時間才能運行(有時甚至超過30-40分鐘)。我並不感到驚訝,它在網絡服務器上花費的時間更長 - 我am有點驚訝,它要花費10倍以上的時間。

這裏的日誌文件的最近部署一個精簡版:

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. 

顯然,這是正在服用的大部分時間兩個構建步驟。我想我可以將它們合併成一個單一的構建步驟 - 儘管我不完全確定這將如何與KuduSync一起工作。

有關如何加快速度的其他建議?或者這基本上只是預期?

+0

這是一個在免費,基本或標準層上運行的網站嗎?實例大小是多少?可能存在處理瓶頸。更多細節在這裏:http://azure.microsoft.com/en-us/pricing/details/websites/ –

+0

這是標準的單核心。我會試着將它撞上雙核。 –

+0

只需跟進。將「標準」實例的大小顛倒爲雙核似乎沒有幫助。我最後一次部署需要30分鐘。 –

回答

0

我懷疑,提到nodejs,有一堆npm包被下載作爲構建的一部分。在您的本地計算機上,這些已經存在,但Kudu每次都將它們恢復到乾淨的文件夾中。其次,大約5分鐘的構建時間花在構建(可能運行)測試項目上。除非在部署工作流程中有意和需要,否則我會建議通過標誌關閉。

+0

是的,azure無法處理節點包的許多小文件。其存儲系統磁帶驅動器速度較慢。 –