在开始正式演讲之前，我先来简短地介绍一下自己与docker以及容器的渊源。
我叫Gordon Russell，来自IBM全球技术服务，领导云创新团队。
我们工作的一部分就是以软件的形式提供专业化服务和管理服务。
这份工作让我最喜欢的部分就是，只要喜欢，就能够使用最前沿的技术，并将之推荐给广泛的IBM社区。
去年的11月份，有人建议玩Linux容器，我们试过之后发现在public domain，它们非常快并且表现出色，真是个好东西。 从那时起我开始折腾各种玩意儿，包括【Alexi、Alexi工具】**需要check**。然后我用到了docker，开始了一段罗曼史。我爱上了它，它也把我带到这里。
我们用linux容器做出了不少东西，比如为了找乐子，我们把SAP HANA容器化了。
这是一段非常有教育价值的体验，不过这是另一个故事。
我之所以用这些这些基准和成果举例是因为，如果你看一下当今的public domain，你会发现许多非常漂亮的数据，特别是**open bz team**【需要check】，他们提供了非常棒的性能测量数据。
但是我还没在云计算领域看到这样的案例。如果从云的角度看，他们的表现将会如何。这也就是你们今天将要看到的。
在我讲数据和图表之前，我想用一张图来说明为何我认为它们很重要。
很多时候我们很容易迷失在数据和图表之中。请大家给我几分钟，把这几张图片说清楚。
这张图片关于动机。当我思考自己的动机时，自认为是个典型的技术狂，大爱技术，也是计算机科学家。
那是哪些动机促使我投身技术呢？首先是家庭，我要供养家庭。打个岔，这是我漂亮的妻子和儿子。我所做的一切都是为了供养他们。（你有想过台下坐着的单身码农的感受吗 -_-!!!）
现在开始思考另一个动机，能够真正激励自己投身喜欢的项目，并为之付出时间和金钱。
我偏好极具创新和创造性的东西，并且认为它们一定程度上非常酷炫。docker肯定具备大量这样的特质。
然后就是收益。我需要为我的家庭增加收益。不过我要说明，收益并不能促使我做出全部决定。但是收益除了能让我养家外还有余力进行创新和创造。
大家认为是什么动机促成了与技术有关的商业决策？
谈到人们作出与技术相关的商业决策，他们直接绕过商学院里的东西，只会说一个词：收益。那是底线。
说了这么多，我还要告诉你们——收益。还是收益。一切都与收益有关。
如何提高自己的最终报价？如何真的提高自己的收益？有很多途径。
要点就是以更少的投入做更多的事情。
这也就是我要分享这些基准和成果的原因。
如果你回顾一下或者研究一下我在业界做过的演讲，会发现我经常讲“所有权成本与投资回报”。
我将要讲虚拟机如何在系统内强化应用，以及你如何去做。
【even with that auto caption, i still can't get this】
另一个与此有关的是授权费用、维护费用。
我不会把这些都讲一遍，不过需要明确今天的内容与密度有关。你的容器越密集，你从系统中获得比虚拟机还大的好处。
也与性能有关。这些技术的性能如何，他们的响应速度怎么样。
再次强调，我呈现此图的原因是不想大家在数字中迷失，并且我会一直用高质量的图片来说明为什么这很重要。
现在让我们来接近真相。这里是关于benchmark rate的概述。
当我们有多种解决方法时，我希望能专注在方法本身。我是云用户，我使用喜爱而使用OpenStack。
我想让大家想象一下，你要创建内置MySQL的BMR容器。我为什么要选择linux容器而不是传统的虚拟机呢。
于是我完整地列出了每个方案的基准。它们在多个方面存在差异，其中之一是云。
作为用户，在此案例中使用OpenStack，使用虚拟机和容器做对比。
我能看到响应时间和性能，也能看到有哪些资源确实消耗我的电脑节点。
另一方面的差异，我称之为in the guest performance。how does something in the guest perform? 我接下来就讲这点。
很多人以为我会选择KVM，因为大家都用KVM，你们猜错了。我爱KTM，但是如果要做全球化的虚拟化，我可能会选虚拟机。
另外我还要声明这并非科学数据，也不是真实的活跃的基准数据。这只是一个半活动的基准数据。所以，这只是为了开始工作所做的粗浅的准备工作。
如果大家熟悉OpenStack集成的话，docker有两个主要plot。nova-docker virt driver主要是让nova看起来就像另一个系统管理程序。
而heat集成则与hot template集成。基于这个原因，我是用nova driver，这样把docker看作OperStack管理系统中的一个管理系统程序。
这就是我在Softlayer里把所有工具设置好后的剖面图。我设置了两个节点，一个是管理者，包括运行的各种管理服务等等；
我还设置了计算机服务器。在这台服务器上，我使用KVM进行一系列测试，这样nova能够【听不懂】，然后我重新安装了驱动和docker驱动，进行测试。
当我进行测试时，我在电脑节点上运行这个栈，而这个栈搜集各种数据，比如CPU、内存数据等等。这些数据很明显，我们一会看看。
我使用OpenStack Ralley从控制点运行测试，现在你们应该熟悉这就是大厅的基准服务，对OpenStack用户的角度，能够获得实际测试中的控制和结果。
这就是剖面图。这里是我的基准参数。【技术术语听不懂】都用Ubuntu，我想你们可能会对这个感兴趣，用的docker 0.10。
KVM方面，我用的KVM Savy**不确定是否是这个拼写**。【听不懂】，我用了memory deduplication，没有作弊。
现在看看测试。第一个测试是静态数据。整个构想是这样的，在稳定状态下，计算机节点是如何寻找资源消耗的。
稳定状态是指机器上有虚拟机，不过这些虚拟机或多或少闲置。
所以我使用别的OpenStack客户端在它上面运行一个非常简单的Python驱动。我是这样做的。
同时启动15台虚拟机，然后我让每层都休眠5分钟。在整个过程中，我测量电脑使用这个栈的情况。
五分钟后，我再启动那15台虚拟机。这就是随着时间变化，虚拟机的变化情况。
现在来查看结果。这就是整个测试的完整时长，docker与KVM容器的对比。
上面是docker，下面是KVM。你可以很清楚地看到在开始阶段，KVM容器有明显的尖峰，那是15台虚拟机产生系统，然后系统进入稳定状态。
稳定状态就是中间最平滑的那部分，然后偶尔有上下波动。这里有几个有趣的点。
首先对比稳定状态在docker和在传统系统管理程序下的不同。在docker下基本看不到CPU的爆发或其它活动。
再看看当我最开始启动15台虚拟机时，看蓝线，它的CPU占用只有20%；而在KTM中则高达7%%。
基于数据，可以看到明显的节约率。同时docker也比KVM更快实现稳定。大家可以粗略地看看，docker是25秒可以实现稳定状态；而KVM则需要90到95秒。
然后我想让这些测试更常态。【技术词汇听不懂】
【听不懂】
显而易见，docker更加平均，几乎没有使用CPU和15个服务器。对不起，是容器。
而KPM差不多是1.91。做个简单的数学，在稳定状态下，在云性能方面，差不多节约了9.5个点。
我想在这里直率地指出，在稳定状态下，在这个特定测试中，docker差不多是9.5。
这次基准的活动是什么？【这是观众提问，没听懂】
在这个方面，基准并没有做什么。这里讲的是系统里的闲置的15台虚拟机或者15个容器，每个都有安装了MySQL。
所以从容器或者虚拟机的角度看，就我所用的技术，知识评估系统的稳定状态，不是发送或推送数据或类似情况。
【听众提问，听不清】
这是一个非常普遍的问题。我给大家展示的这些并不是真正对KVM和docker进行比较。
这么做的首要原因是一段Python代码能在计算节点上启动它们。我们有docker驱动，也有KVM驱动，以及OpenStack环境。
它们并不同。我是说虽然接口相同，但是执行方式大相径庭。如果你想研究，能够发现这些不同。就是这样。你认为呢？
这张图表是查看它们的覆盖情况。底部的蓝线是docker，红色和棕色是KVM。
大体上，用户使用docker时，活动明显更少，也更稳定。
现在我们比较内存。这是对整个测试过程中内存表现的测量。你们可以看到，docker的稳定状态要比KVM来得快很多，持续时间更久。
你能看到在红线和蓝色之间有非常大的三角区域，蓝色明显是docker。如果你测量这个三角区，docker差不多是7.34兆赫，KVM大约是4300.87。
因为是15台虚拟机，如果把它们除以15，那docker每个容器大约是50，KVM大约是292。差不多是6倍的差距。
这张图表是一分钟内的均衡负载。与我们早前看到的CPU数字相关。
现在进入下一测试。我把它叫做系列启动测试。
【听不懂】
这个测试评估由OpenStack报告的虚拟机对于系统等待进入活跃状态。
同时也要考察docker容器在这方面的表现等。这是15个的表现，【听不懂】。
我们来看真实结果。这比较了服务器或者容器进入活跃状态的真实的反应时。
通过这个项目，还记得我使用的基准驱动吗？docker这方是3.5秒，KVM是5.78秒。大约有65%的差距。
这就是通过OpenStack下的启动时间。
这是测试中CPU的表现，上面是docker，下面是KVM。
现在看看上方的docker曲线图，你会看到启动虚拟机的波动有15个，然后在结尾停止。
每个波动过后快速进入稳定状态。而在KVM用例中，我们能看到明显的上升趋势。有些数字值得研究。不过看看持续时间，docker和KVM差距非常大。
这不是正常时段取的平均值。我也很好奇为什么会这样。
这还是相同的曲线图，【听不懂】。两条蓝线是docker，红线和棕红线是KVM。
我想更进一步，于是我截取了最开始的8到50秒，然后同时突然关闭，然后覆盖，于是我得到了它们长度趋势线。
我后来又有个想法，在under sistine 启动时，KVM和docker的不同表现。这代表了处于持续启动状态下的系统，KVM非常迅速的上下波动。你能看到明显的差异。你们有问题要问吗？
【听众提问，听不清】
不是。【观众回答】正确。再次重申，我认为linux的优点之一就是只要你愿意，既能运行一个进程，也能运行100个进程。完爆传统的虚拟机。你的选择更为灵活。
【听众提问】是的。【听众】
同意。不过那是别人建议的另一个测试。【听不懂】如果能看到它们是如何表现的非常好。我假设你是想更深入地观察它们。那些容器可能是精心挑选的，只运行你需要运行的然后获得想要的结果。
这就是容器最大的优点。当然你们也可以选择传统的虚拟机，然后slim down你要运行的程序。不过那可能会让你如坐针毡。
你当然可以那么做，我认为你建议的方法应该很不错。我希望自己能有时间那么做，然后也有人想看那些结果。
这张图表是内存增长率，红色是KVM，蓝色是docker。从这个三角区我们可以看到，docker差不多是667兆赫，KVM是2737兆赫。如果除以15，差不多就是45对182兆赫。差不多相差4倍。
这里与开始的情况也一样。我设置好然后我拿到了趋势图，你能看到它们以特定的方式保持上升。
你能看到有3到4倍的上升差异，这是加载平均值。稍等一会。
接下来是传统系统管理程序与linux容器在重启状态下的性能对比。
这个测试是把虚拟机和容器纵列，等它们活跃然后硬重启，然后就有3个OpenStack。
然后重启虚拟机5次。这就是其中一台虚拟机重启五次后的数据，你通过这些蓝色曲线可以发现其中的变化。
在重启方面，docker是2.57秒，而KVM是124秒。
回到大家的观点，多个进程和事物能搞垮传统虚拟机，而容器不会轻易落败。
从删除方面做比较。在观察时间内，两者都统一地是3.5秒，因此并无明显差异。
这是对持续使用CPU的对比。docker在上，KVM在下。这张图表揭示，【听不懂】。
这可能与线程数量有关。【听不懂】
对于内存。没什么特别有趣的数字，不过你能看到重启虚拟机时出现的气泡区域，以及一分钟内的加载平均数。
最后一项测试是OpenStack快照，我称之为云的视角。创建虚拟机然后快照，接着在图像仓库里保存。这就是OpenStack快照。
然后可以在特定的基准下测量有什么变化。总体上看，docker的快照约37秒，KVM是48秒。docker略快。
在表面之下是操作方式的不同，你要理解了内部是如何运行的。不过殊途同归，他们都完成了快照，并且将其加载到图像仓库。
CPU没什么特别有趣的地方，差不多可以一笔带过，这里有几张图表。我想留多点时间让大家提问，平均加载时间就不讲了。
这里在guest模式下的性能分析，互联网上有很多类似测试的大量细节，我只提其中几点。
这是网络吞吐量，KVM和docker对比。两者几乎一致。
这是进行内存测试了。你能看到绿色的是bare metal，蓝色代表docker，红色代表KVM。
很明显，docker和容器几乎与bare metal一致。这也是优点之一。
下方的图表，我们返回了bare metal和docker的基础容器。docker的平均表现与bare metal基本一致。
我也使用了一个非常简单的dd命令来了解元数据的差异，【听不懂】。基于整个结果，docker的平均数与bare metal一致。
【听众提问，听不清】。【听不懂】
读写测试。蓝色的是docker，KVM是红色。大不相同。
然后我进行了应用层的测试。运行MySQL，然后【听不懂】。然后能看到docker和KVM略有不同，但是他们的趋势相似。
最后是index插入。我不清楚你们是否熟悉这个测试，基本上是随着数据库增长测试大规模插入。
你会看到底部的平缓区域，然后慢慢地成百上千地增加。等完成插入，你会看到两者的用时相当接近。
差不多要讲完了。还有一点，从云管理或者编配的角度比较。
标准程序，启动容器，我使用自己的系统是0.17秒。如果是通过OpenStack或是别的管理平台，差不多是3.5秒。
结论就是，在编配或者别的管理系统中，linux容器有大量优点。
在这些方式下有各种数据，linux容器在管理系统下真的有一席之地。
这张是图像大小。对比了docker和KVM的标准ubuntu MySQL图像。我是从云服务获得ubuntu的图像然后安装的。
通过柱状图，你能看到MySQL实际图像容量的差异。
这里是小结。linux容器运行速度很快，与bare metal接近，它们在云上的运行也快。
我想让大家理解的是密度收益。【理解不能】。我所处的决策层要比中型公司要大。
我想让大家思考一下，在我给大家展示了这么多虚拟化和云优点后，并不是只有密度。
有太多问题需要考虑，自动化占多少，我需要做什么才能让我的数据中心运行，让性能操作自动化。
作为一个社区，我认为大家需要继续专注于让docker和linux容器更加强大。
我想我们有5分钟的提问时间，或者是5个问题。
从密度的角度看，内存、CPU和资源利用是一个非常有趣的问题。更有趣也更值得思考的是如何在相同系统上运行多个容器并互动。是这个问题吗？
这个问题非常好。我并没有做那样的测试，我看到有人做过那样的测试。你可以去oepnVZ的网站看看他们的性能报告，他们确实做了这样的事情。
他们的测试与你谈的非常接近，也是多个容器，查看他们之间是如何相互影响的，在high-low环境下。
我有个建议，我想你或者会场里的其他人可以做一下docker环境下的测试，不过我自己还没做过。
我想第一个问题是关于KVM【理解不能】。
还有别的问题吗？还有3分钟。
问题是：为什么做stand-alone测试？【听不懂】，
我们基本上进行了所有的TB和执行，他们的标准非常不同。要想回答这个问题，我需要做更多调查。
我假设在一定水平上【听不懂】。不过这真的只是猜想。
我真的很想做这个研究，不过我目前没有充足的时间，不能优先去做。好了，谢谢大家。