Google云计算允许用户在Compute Engine虚拟机上的虚拟网络适配器,自定义队列(Custom Queues)的数量来最大化网络性能,进一步满足高带宽和大流量工作负载的网络性能需求。借由自定义队列,用户不用增加额外的成本,便可以改善高流量应用的性能。
过去虚拟网络适配器分配固定数量网络队列的机制,限制了每个虚拟网络适配器可以使用的队列数量,而可能对工作负载的性能产生影响,Google举例,像是拥有8个虚拟网络适配器的standard-128虚拟机,每个虚拟网络适配器只能拥有8个队列,而这仅是虚拟机可用最大队列数量的一半。
这样的情况迫使用户需要垂直扩展选择更大的虚拟机,或是减少虚拟网络适配器的数量,以确保每个虚拟网络适配器能够使用够多的队列,但这两种选择不只无法让服务良好地扩展,还会额外增加成本。
而现在Google云计算提供新的选择,是允许用户对每个虚拟网络适配器设置自定义队列,根据不同的虚拟网络适配器的驱动程序类型,手动设置最大数量的网络队列。使用virtIO时,最大队列数量可达32,而使用gVNIC的时候最多则为16个。
该新功能有助于提升高带宽应用程序,或是需要处理大流量的人工智能工作负载性能,这项功能可最大化网络性能,供用户更好地利用资源,虚拟机的性能也会因为自定义队列而改善,而且虚拟机可以在保持网络性能的同时更好地扩展。
自定义队列功能已包含在第一层(Tier_1)高带宽网络和第二代Google Compute Engine虚拟机中,无需额外费用即可使用。结合自定义队列与队列超订(Oversubscription)两功能 ,虚拟机更可获得显著的弹性和性能提升。
当用户使用gVNIC驱动程序类型的N2、N2D、C2或C2D虚拟机,并且激活第一层网络,用户便可以使用队列超订,现在不只可替一个虚拟网络适配器分配16个网络队列,还能够对所有虚拟网络适配器都分配16个网络队列,使虚拟网络适配器上的队列数量可以超过虚拟机vCPU的数量。
在队列超订的情况下,每个虚拟机的总队列数量将会是虚拟网络适配器数量的16倍,赋予网络密集型应用提供高吞吐量能力。官方提到,在基准测试中使用默认队列分配,网络虚拟设备仅能实现其宣称吞吐量的50%,而借由自定义队列与队列超订,吞吐量便可达到接近饱和。
领取专属 10元无门槛券
私享最新 技术干货