2014-12-22 63 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无法处理节点包的许多小文件。其存储系统磁带驱动器速度较慢。 –