前言
我一直在购买基于云的托管解决方案,特别是MS Azure&亚马逊的EC2。他们Microsoft和Amazon的定价表描述了“费用/小时”/“计算小时数”。
问题
当他们说“费用/小时”或“计算小时”时,一小时内会是什么?对于ASP.NET应用程序,应用程序池是否处于活动状态的时间量是多少?或者,您的应用程序处于活动状态的时间量?或者,它是否以某种方式与每小时/分钟的传入请求相关?
如果应用程序未处于活动状态(服务请求),是否有可能在整体成本计算中考虑因素,从而减少整体“计算时间”?
答案 0 :(得分:26)
大卫和迈克的好答案。让我补充一点:不要考虑 apps ,而是考虑虚拟机。当该虚拟机被启动时(即使在停止状态,虚拟机被分配),您将被收费。您可以轻松地在该虚拟机实例中启动和停止应用程序:可能是Web应用程序,后台渲染过程等等。无论您是刻录0%CPU还是100%CPU,您都需要为该虚拟机支付时钟。
请注意,即使使用云服务(Web和辅助角色),您最终也会处理虚拟机。 Web角色或辅助角色的每个实例都是其自己的Windows Server虚拟机。
哦,网站预留实例也一样。
关于关闭应用程序以节省计费时间的问题:例如,如果您的夜间进程可能运行一两个小时,那么请考虑将该进程放在自己的Cloud Service(或虚拟机)中。什么时候运行它,将它部署到它的命名槽(yourname.cloudapp.net),让它运行直到任务完成,然后删除部署。现在托管您的流程的虚拟机实例运行2个小时,而不是24个。您可以不做的是将Web或辅助角色的数量减少到零。因此,如果您有一个具有2个实例和辅助角色的Web角色来执行某些夜间操作,则在完成任务后,您无法将计数设置为零工作者角色实例。这就是为什么我建议将夜间任务放在自己的部署中。
编辑自过去几个月以来,情况发生了一些变化。特别是,2013年6月宣布了以下内容:
您可以阅读ScottGu的博客文章,了解每分钟和停止的VM更新here。
答案 1 :(得分:15)
小时计为部署应用程序的时间(运行与否,正在访问或不运行)。一个小时是“挂钟”小时 - 这意味着如果你在上午10:45部署并在上午11点05分删除,则需要两个小时(10点小时和11点小时)。
答案 2 :(得分:2)
更清楚一点,部署应用程序的时间是指托管应用程序的服务器实例的活动时间。实际上,时间以时钟小时计算。
[已编辑] Azure虚拟机(IaaS模型)上的“已停止”虚拟机不再耗费计算时间,只有您决定删除虚拟机后,才会由存储/受管磁盘计费。