这篇论文的标题是《Nebula: Performance and Energy Efficiency in Serverless Computing - A Comparative Study of WebAssembly and Docker》,作者是 Marius Nilsen Kluften,来自奥斯陆大学(University of Oslo)的信息学系。论文探讨了在无服务器计算环境中,WebAssembly(Wasm)与Docker容器的性能和能源效率,并开发了一个名为Nebula的原型平台来测试这些技术。
主要内容概述:
摘要
- 论文探讨了云计算架构中对可持续选项的需求,特别是考虑到全球电力使用中约1%由ICT行业消耗。
- 研究了WebAssembly作为一种在云原生应用中考虑的技术,利用其固有的效率、可移植性和较低的启动时间。
- 初步发现表明,编译为WebAssembly模块的程序具有减少的启动和运行时间,这可能导致更低的能源消耗,为更可持续的云计算提供了一条可行路径。
致谢
- 作者感谢Fermyon的CEO Matt Butcher在“Rustacean Station”播客中的启发,以及他的两位导师Joachim Tilsted Kristensen和Michael Kirkedal Thomsen的指导。
- 作者还感谢他的女朋友Ingvild Stølen的支持,以及他的同行Håkon Thorkildsen Smørvik在原型开发过程中的反馈和帮助。
第一章:引言
- 论文介绍了云计算作为技术创新的基础技术,以及其对环境的影响,特别是数据中心的能源需求。
- 论文提出了研究动机,即在满足对云服务的增长需求的同时,寻求环境可持续的解决方案。
第二章:云计算的三波
- 论文介绍了云计算的演变,从虚拟机到容器化技术,再到WebAssembly模块作为第三波云计算技术。
第三章:背景
- 详细讨论了云计算的概念、能源消耗和可持续性问题,以及虚拟化、容器化和无服务器计算的背景。
第四章:方法论
- 描述了实验框架,包括原型开发、控制实验、基准测试、测量和数据收集、数据分析和比较分析。
第五章:设计Nebula
- 介绍了Nebula原型的范围和目标,系统架构,以及如何设计和实现Nebula。
第六章:实现Nebula
- 详细说明了技术栈的选择,包括Rust和WebAssembly,以及如何构建Web服务器、调用函数、开发和部署函数。
第七章:结果
- 展示了在不同硬件配置上运行基准测试的结果,包括启动时间、总运行时间和能源消耗。
以下是该章节的关键发现:
-
启动和运行时间:
- Wasm模块在虚拟机(VM)上的冷启动时间比Docker容器快365倍,平均启动时间为0.89毫秒,而Docker为324.66毫秒。
- 在Raspberry Pi上,Wasm模块的冷启动时间比Docker容器快217倍,平均启动时间为3.19毫秒,而Docker为692.36毫秒。
- Wasm模块在VM上的总运行时间比Docker容器快324倍,平均为1.58毫秒,而Docker为511.69毫秒。
- 在Raspberry Pi上,Wasm模块的总运行时间比Docker容器快183倍,平均为6.12毫秒,而Docker为1119.18毫秒。
-
能源消耗:
- 在Raspberry Pi上,Wasm模块的能源消耗比Docker容器少198倍,平均消耗为5.95微瓦时(μWh),而Docker为1176.15 μWh。
-
功率负载和能源消耗结果:
- 实验显示,Wasm模块在执行期间的功率负载和能源消耗显著低于Docker容器。
- 随着输入值的增加,Wasm和Docker的功率负载趋于稳定,但能源消耗曲线保持各自的轨迹,表明在优化能源效率时,考虑功率和时间因素的重要性。
-
函数存储:
- Wasm模块的存储大小远小于Docker镜像,经过wasm-tools的strip工具处理后,Wasm模块的大小可以减少到Docker镜像的1/138。
-
图表和数据:
- 尽管无法直接显示图表,但文中提到了多个图表,如图7.1展示了在两种设置上Wasm和Docker的平均启动和运行时间,图7.2和图7.3分别展示了在虚拟机和Raspberry Pi上详细测量的启动和运行时间。
- 图7.4至图7.12展示了在Raspberry Pi上执行不同函数时的平均功率负载和估计的能源消耗。
这些结果表明,Wasm在无服务器计算环境中提供了显著的性能优势和能源效率,特别是在启动时间、运行速度和能源消耗方面。这些发现支持了Wasm作为Docker在某些场景下的可行替代方案的观点。
第八章:讨论
- 分析了WebAssembly和Docker在启动延迟、运行时性能、能源效率和功能存储方面的性能。
第九章:结论
- 总结了WebAssembly在无服务器计算中的潜力,特别是在性能、启动时间和能源效率方面。
第十章:未来工作
- 提出了未来研究的方向,包括进一步探索Docker性能差异、使用其他编程语言作为源代码、分布式部署和能源测量,以及更准确的能源消耗测量。
附录和参考文献
- 提供了论文中使用的缩写词列表和参考文献。
整体而言,这篇论文深入探讨了WebAssembly在无服务器计算环境中作为Docker容器的替代方案的潜力,特别是在性能和能源效率方面。通过实验和原型开发,论文展示了WebAssembly在这些领域的显著优势,并为未来的研究提供了方向。