Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure VM定价-拥有80台单核机器还是10台8核机器更好?_Azure_Azure Virtual Machine_Azure Powershell - Fatal编程技术网

Azure VM定价-拥有80台单核机器还是10台8核机器更好?

Azure VM定价-拥有80台单核机器还是10台8核机器更好?,azure,azure-virtual-machine,azure-powershell,Azure,Azure Virtual Machine,Azure Powershell,我受到一个软件的限制,该软件在程序运行的每个实例中使用一个内核。它将运行SQL server工作队列并将结果存放到服务器。因此,我运行的实例越多,整个项目完成得越快。我已经玩了一点Azure虚拟机,可以通过两种方式加快进程 1) 我可以在单个核心虚拟机上运行该应用程序,克隆该虚拟机,并在我认为有必要的多个虚拟机上运行该应用程序,以充分加快作业的速度 或 2) 我可以在8核虚拟机上运行应用程序8次,…再次克隆该虚拟机,并在我认为有必要的数量上运行它,以充分加快作业速度 我在测试中注意到,添加8个单

我受到一个软件的限制,该软件在程序运行的每个实例中使用一个内核。它将运行SQL server工作队列并将结果存放到服务器。因此,我运行的实例越多,整个项目完成得越快。我已经玩了一点Azure虚拟机,可以通过两种方式加快进程

1) 我可以在单个核心虚拟机上运行该应用程序,克隆该虚拟机,并在我认为有必要的多个虚拟机上运行该应用程序,以充分加快作业的速度

2) 我可以在8核虚拟机上运行应用程序8次,…再次克隆该虚拟机,并在我认为有必要的数量上运行它,以充分加快作业速度

我在测试中注意到,添加8个单核虚拟机和1个8核虚拟机的速度大致相同。假设这是真的,那么单核机器的价格会更好吗

定价有点神秘,不管是真实的cpu使用时间,还是什么。使用18核的方法会更容易一些,因为旋转机器和拆卸机器需要时间,但我想这可能是自动化的

从一些定价页面看来,多核单核虚拟机方法的成本更低


附带问题:那么我是否可以像一些powershell脚本一样,继续添加某个映像的vm并运行应用程序,然后在接近完成时开始关闭它们?生成虚拟机后,是否有某种方法可以启动应用程序,而不必远程访问每个虚拟机并运行它?

计费

根据,虚拟机是按分钟计费的。价格以小时费率(60分钟)列出,并根据虚拟机运行部分小时的总分钟数计费

2013年7月,1个小型虚拟机(1个虚拟核心)的成本为每小时0.09美元;8个小型虚拟机(8个虚拟核心)的成本为每小时0.72美元;1个超大虚拟机(8个虚拟核)成本为每小时0.72美元(与8个小型虚拟机相同)

虚拟机大小和性能

VMs的大小不仅在内核和RAM的数量上有所不同,而且从小型的100Mbps到超大的800Mbps不等

超小型虚拟机在CPU和I/O能力方面相当有限,不适合您描述的工作负载

对于单线程、I/O绑定的应用程序(如问题中所述),超大VM可能具有优势,因为每个请求的响应时间更快

还建议对每个核心运行2个、4个或更多进程的工作负载进行基准测试。例如,在一个小型VM中有2个或4个进程,在一个超大VM中有16个、32个或更多进程,以在CPU和I/O负载之间找到适当的平衡(前提是您使用的RAM不超过可用的RAM)

自动缩放

自动扩展虚拟机非常重要。它可以基于CPU负载或Windows Azure队列长度

另一种选择是使用专用工具或服务来监视服务器上的负载,并根据需要运行PowerShell脚本来添加或删除虚拟机

自动运行

您可以使用Windows计划程序在Windows启动时自动运行任务。

定价为“机器的正常运行时间(小时)*虚拟机大小/小时的速率*实例数”

e、 g.您有一个8核虚拟机(超大)运行一个月(30天) (30*24)*0.72$*1=518.4$

对于8个单芯,它将是 (30*24)*0.09*8=518.4美元

所以我怀疑是否会有价格差异。使用更小的机器和“向外扩展”的一个优点是当您对可伸缩性有更细粒度的控制时。一台特大型机器比2-3台小型机器消耗的闲置美元要多

是的,你绝对可以编写这个脚本。假设它们是IaaS机器,您可以将脚本添加到windows启动,如果在PaaS上您可以使用“”。

我认为,在其他条件相同的情况下,这段代码实际上是CPU受限的,并且没有从在同一台机器上运行多个进程所提供的任何内存共享中获益,您应该选择单核机器,而不是多核机器

原因:

隔离故障域

在可能的情况下,向外扩展比向上扩展更好,因为这样可以自然地隔离故障。如果其中一个小节点崩溃,则只影响一个进程。如果一个大型节点崩溃,多个进程将停止

负载平衡

与任何多租户系统一样,Windows Azure是一种共享资源。这意味着您可能会与其他工作负载争夺CPU周期。拥有小型虚拟机使您有更好的机会将它们分布在数据中心的物理服务器上,这些服务器在配置机器时具有最佳的资源状况(您需要确保在再次启动虚拟机之前停止并解除分配虚拟机,以允许Azure fabric placement算法选择最佳主机). 如果使用大型虚拟机,则不太可能找到具有最佳竞争的合适主机来容纳多个虚拟核心

虚拟处理器调度

对虚拟CPU的调度与物理CPU的调度有什么不同,目前还没有广泛的了解,但这是值得一读的。需要记住的主要一点是,VMware ESXi和Hyper-V(运行Azure)等虚拟机监控程序将多个虚拟核心调度在一起,而不是单独调度。因此,如果您有一个8核VM,那么物理主机必须同时有8个可用物理核,才能允许虚拟CPU运行。虚拟内核越多,主机在任何给定时间都不太可能有足够的物理内核(即使有7个物理内核空闲,虚拟机也无法运行)。这可能会导致一个矛盾的结果,即随着虚拟CPU内核的增加,VM的性能会变得更差

简言之,单个vCPU机器更有可能分享物理过程