有没有减少Azure的部署开始和角色的OnStart之间时间的方式()的代码被调用?(Is ther

2019-06-24 08:23发布

目前,当我创建使用Windows Azure管理门户部署大约需要9(九!)分钟有代码在我的角色OnStart()正在运行。 我觉得什么是错的存在 - 玖分钟长的离谱。

我有我期望在几秒钟内完成(当在计算仿真运行结束在几秒钟内),一个小的启动任务,所以看起来像Azure的基础是在那里所有的时间事大

有没有一种方法,以加快进程?

Answer 1:

Windows Azure的一般需要5-15分钟内即可部署。 它在做什么是旋转起来服务器,虚拟机,启动Windows,等它的速度越来越快随着时间的推移,只有九分钟肯定不寻常的。



Answer 2:

当您将应用程序部署到Windows Azure取决于你的虚拟机的大小和实例数,这是发生了什么:

  1. 您提供VM类型(小,中,大,前大)和实例计数(例如,N)

  2. 依靠虚拟机类型设置,如果你选择了小则结构控制器(FC)需要寻找到一个单核心VM可以开始为你或者你选择的前大槽,然后FC需要找到一个主机到主机8个内核访客VM。 在这一步中,可能会发生两种可能性(有更多的但为了简单起见,我只是引述2):

    2.1 FC能找到一个现成的节点(或机架),其中已经有1个或多个核心的免费托管您的VM 2.2 FC可能找不到所有正在运行的主机节点的任何空核(多核)和你一个新的节点需要重新启动才能托管客户端虚拟机

  3. 如果你的虚拟机得到了选择路径2.1,在这种情况下主机VM已经和宿主机器只需要提供一个客户虚拟机为您取决于你的尺寸。 这可能需要更少的时间,因为系统只需要规定,只有启动虚拟机。

  4. 如果你的虚拟机得到了选择路径2.2,在这种情况下,第一主机将启动(如果它不运行,这是很常见*),然后需要进行配置和启动来宾VM。 而这条道路将需要更长的时间,然后路径2.1。

注意:使用2.1和2.2,它是可能的部署相同的应用程序时,你可能要单独经验。

  1. 同样的事情也会发生在找到N个实例来为您服务运行,但这一过程将并行发生,以2.1 / 2.2,但时间会非常相同。 此外FC也需要查找每个实例不同的故障域,以便在情况下,一个实例关闭,其他仍然有效。

因此,在系统内部有很多不是简单地开启一个Windows Server 2008的计算机回事。 由于多个虚拟机是在一个单一主机的安全运行是首要,所以当一个客户虚拟机被提供,很多事情完成保持对事物的顺序工作。

关于“随时可用的时间服务器的小型舰队”的评论,这是很好的评论,但在有服务于全世界“小”数据中心是非常“庞大”的数字,只是让成千上万的机器没有任何客户操作系统中运行不符合逻辑。 你也只是在一段时间部署一次,这是不是你会做什么每天都在不到10分钟,有仍然是可以理解的。



Answer 3:

如果你是指在Azure中现有VM您停止(解除分配),并在同时启动一次,然后是 - 有一种方法,使之超级快,但你为它付出。 你必须将你的虚拟机使用的高级存储。

主要的区别是,高级存储不仅在更快的固态硬盘驱动器,但它在不使用时不会被存档 - 让你为它付出,甚至当你的VM处于脱机状态。 见,正常stoage VM,在启动时,他们复制到VHD进入它从运行,当你做了存档,你不付出代价的磁盘另一个存储。

但随着高级存储您的VHD始终保持准备运行,所以,当你开始你的虚拟机是不是在任何地方复制。 这使得它更快。 下行:一分钱一分货,即使虚拟机被释放的VHD。

所以,你,如果你想付或不 - 但有一个办法做到这一点。

(我不是一个蓝色的专家,但我没有多问几个老乡的MVP吧,这就是他们解释什么。很想听到的话,这是不准确)。



文章来源: Is there a way to reduce time between Azure deployment start and role OnStart() code being invoked?