大数跨境

520的巧克力与硬件卸载

520的巧克力与硬件卸载 Marvell
2016-05-19
1
导读:如果我有一台装满虚拟机(VM)的主机,我不希望它们因为I/O流量而中断,我也不希望I/O由于某人的工作用光了本地CPU时间而终止。这时,卸载功能可为您提供帮助。卸载引擎将针对特定的任务而进行优化,因此

本文作者:Ricky Simmons,QLogic高级系统工程师


对任何需要大量I/O且CPU利用率较高的应用程序、进程或服务器来说,硬件卸载都至关重要,必不可少。硬件卸载是一项适配器功能,即在软件中完成正常情况下由驱动程序负责的处理工作和操作。这方面的一些常见示例包括NVGRE/VXLAN隧道卸载和FCoE/iSCSI存储卸载。那如果没有卸载功能,会发生什么?在云、虚拟化、大数据、软件定义等概念越发流行,不断占领媒体头条的时候,硬件卸载这一话题却有些被忽视。尽管这是个往往太过技术并且有些无趣的话题,但考虑到其对于高性能消耗应用至关重要这一事实,我们诚挚建议您在改造数据中心之前,请确保了解卸载功能。

没有卸载功能,处理工作将传递给驱动程序完成。现在,CPU必须自己完成处理工作,然后将其传递给相应的应用程序、客户操作系统或任何适当的端点。这非常重要,因为CPU的工作还包括将任务移交给不同的内核,但如果它过于忙碌,它可能会“放弃”这项任务。

假设说,我在“520”给妻子送了一盒什锦巧克力,但结果我的两个孩子也想吃。不过问题在于他们一个不喜欢吃焦糖的,另一个不喜欢奶油杏仁的,而酒心的又只能给我妻子,不能给孩子们。这时候,我妻子将巧克力给我,由我决定如何分给它们。

混乱出现了。我还没弄清下一颗巧克力的口味,两个孩子就吃光了已经分给他们的巧克力。我成为了“瓶颈”。这样的效率很低,有一半的时间,孩子们都空坐着无所事事,没有巧克力吃。不仅如此,最终我还要把酒心和另外一些巧克力重新还给妻子。听起来简直笨的无可救药对不对?

在这种情况下,我就是CPU,我的两个儿子是应用程序,而我妻子是不具备卸载功能的I/O适配器。我必须努力处理多个任务,而且效率低下,导致应用程序在等待我完成工作时处于闲置状态,网络在我无法快速完成处理时必须进行重传。

你一定知道此时的正确做法是什么:让妻子首先帮忙确定每颗巧克力的口味。这样,我只需要将正确的巧克力发给儿子们,而且,妻子也不用把她要吃的巧克力转给我。应用程序感到满意,我也有了空闲时间,感谢妻子“卸载”了那份要确定焦粮/奶油杏仁糖的工作。

这个示例与隧道卸载非常类似。如果没有卸载功能,将无法了解隧道的状态,I/O适配器也无法确定数据包的内容。因此,它直接将数据包传给CPU,让CPU来查明其中的内容。如果出现大量网络流量,CPU将忙于完成这个繁琐的任务,而无法执行其它工作。此外还有许多其它形式的卸载(如FCoE/iSCSI存储卸载、RDMA/RoCE等)。

如果我有一台装满虚拟机(VM)的主机,我不希望它们因为I/O流量而中断,我也不希望I/O由于某人的工作用光了本地CPU时间而终止。这时,卸载功能可为您提供帮助。卸载引擎将针对特定的任务而进行优化,因此,它更加高效。

既然卸载功能如此重要,为什么有人购买不具备卸载功能的产品呢?他们可能从以下几方面进行决策:

Ÿ·  成本——无卸载功能的产品较为便宜。但是,我们真正应该讨论的是总体拥有成本(TCO)。如果您必须购买更多服务器来弥补丢失的CPU时间,它还称得上便宜吗?

· Ÿ 需求——如果您的服务器需要的I/O极低,并且CPU只需要处理I/O工作,那么,卸载功能并不适用于您。但是,您的服务器真的这么轻松吗?

· Ÿ 培训——他们不了解硬件卸载,或者他们认为“软件就可以做到”。但软件意味着CPU利用率,并且事实上软件无法处理这项工作。

每推出新一代服务器,销售宣传都声称新CPU能够处理更多工作。它们确实可以做到,但可以持续多长时间呢?容量有一个坏习惯:它会在您最意想不到的时候耗尽。人们总是会想办法去利用最大容量,如果在这种情况下,I/O能够发挥自己的潜力,不是很棒吗?

请记住,一分钱一分货。试着去做一次有关硬件卸载和I/O的“尽职调查”,了解智能I/O适配器的强大效益。


【声明】内容源于网络
0
0
Marvell
内容 495
粉丝 0
Marvell
总阅读427
粉丝0
内容495