Nebula: 无服务器计算中的性能和能源效率 - WebAssembly与Docker的比较研究

神一样的老师 2024-09-20 12:33:01 阅读 93

这篇论文的标题是《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服务器、调用函数、开发和部署函数。

第七章:结果

展示了在不同硬件配置上运行基准测试的结果,包括启动时间、总运行时间和能源消耗。

以下是该章节的关键发现:

216ddfe04af04b06b85d3a876130b7a1.png

启动和运行时间

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在这些领域的显著优势,并为未来的研究提供了方向。

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。