在迁移到Microsoft Azure公有云后,管理员需要从一系列的实例类型中做出选择,并且随后组合一系列支持服务——存储,扩展,缓存,数据库等——来优化工作负载性能。
本文综合介绍Microsoft Azure云实例,以及将工作负载映射到合适实例类型的***实践。
Azure实例类型分解
Microsoft目前列出了80个独特的Azure实例类型,用户可以从中选择。实例类型如下:
A系列:通用实例提供一致的处理器性能和普通的内存以及磁盘能力。一些A系列的实例可以使用额外的处理器核和更多的网络带宽,从而运行计算密集型任务。
D系列:和A系列相比,提供更强大的计算能力和磁盘性能,因为有更多的处理器核,每个核有更多内存和固态硬盘(SSD)以供临时存储。
给工作负载匹配合适的Azure实例类型,可以从原生计算需求开始。
Dv2系列:因为使用具有更新特性运行在turbo模式的处理器,相同的内存和磁盘配置下,比D系列实例的处理能力强35%。
DS系列,DSv2系列,Fs系列和Gs系列:着重高性能存储的角色,提供多样的处理器,内存和带宽特性,这些实例都可以为了快速,低延迟的I/O操作而使用SSD存储做VM磁盘以及缓存。
F系列:提供和Dv2系列相同的处理器核,但是每小时的运营费用更低。
G系列:提供***的内存能力,并且运行在使用Intel Xeon E5 V3处理器的服务器上。
H系列:为计算密集型任务而设计,这些任务包括建模,高性能计算(HPC)集群和模拟。
N系列:增加了图像处理单元(GPU)的处理能力来处理要求***的工作负载。
应该使用哪种Azure实例类型?
要为工作负载选择正确的Azure实例类型,需要从原生的计算需求出发。运行应用,需要多少处理器核,内存,磁盘存储,磁盘I/O和网络带宽?要回答这些问题,需要在本地环境对应用程序做评估,并且监控性能来检测可能的瓶颈。
接下来,选择一种能够满足,并且轻微超过这些预计需求的Azure实例。该实例类型还需要支持所有特别需求,比如GPU支持,计算密集或者高带宽。
给某个云实例匹配工作负载并不总是1:1的关系。比如,实例大小限制了可用虚拟磁盘的数量。因此,如果某个应用程序需要大量虚拟磁盘,管理员可能就不得不选择更大的Azure实例。使用Azure Diagnostics这样的工具来测试并且度量实例内部应用程序的性能,并且验证该核心度量是可接受的。如果不能接受,就在其他实例里再次尝试这种工作负载。
Azure上运行Windows VM指南
Azure实例类型,比如DS系列或者GS系列,在可接受的费用内,为绝大多数企业工作负载提供良好的性能。
低优先级工作负载,比如测试和开发,可以运行在更低廉的实例上,比如A系列或者D系列,但是通常需要在性能上作出妥协。另一方面,高性能实例通常不值得所花的费用,比如H系列或者N系列,除非工作负载能够从这样的投资里显著受益。
从实例大小开始,包括处理器核,内存,存储,磁盘I/O和网卡(NIC)数量,这些可以和本地服务器实例保持一致。一旦工作负载迁移后,就要收集性能度量指标,并且如果需要可以将工作负载移动到不同的实例上。记住每种实例对磁盘大小,I/O和NIC数量都有限制。
即使决定了合适的实例大小,一个实例通常不够。单个实例对于临时性的,低优先级的测试和开发实例来说足够了,但是不适合生产环境工作负载。如果应用程序,网络或者底层硬件发生故障,工作负载就不可用了。在Azure上的工作负载的部署要求安排在一个可用集里的多个VM上,也称之为集群。Azure不支持单台VM的服务级别协议。
当预配实例,存储和其他资源时,在最靠近工作负载用户的Azure region或者location里预配这些资源。这样做能够让延迟最小并且改进性能。
Azure实例能够垂直扩展,也能够水平扩展。垂直扩展意味着改变VM大小,通常是变大。这是工作负载需要更多资源时的***方案。水平扩展意味着向集群添加实例。当单个实例不能提供所需的计算能力或者处理流量,或者需要更多的可用性和弹性时,水平扩展是***方案。
如果可能的话,预配和管理资源同时进行。使用Azure的资源组来简化并且管理账单,然后以组为单元来监控并且管理这些资源。利用Azure的诊断能力,比如基础的健康度量,启动诊断和基础架构的诊断日志。对工作负载问题做故障排查以及改进部署来说,日志和诊断至关重要。