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

news2024/12/26 10:59:15

这篇论文的标题是《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

  1. 启动和运行时间

    • 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毫秒。
  2. 能源消耗

    • 在Raspberry Pi上,Wasm模块的能源消耗比Docker容器少198倍,平均消耗为5.95微瓦时(μWh),而Docker为1176.15 μWh。
  3. 功率负载和能源消耗结果

    • 实验显示,Wasm模块在执行期间的功率负载和能源消耗显著低于Docker容器。
    • 随着输入值的增加,Wasm和Docker的功率负载趋于稳定,但能源消耗曲线保持各自的轨迹,表明在优化能源效率时,考虑功率和时间因素的重要性。
  4. 函数存储

    • Wasm模块的存储大小远小于Docker镜像,经过wasm-tools的strip工具处理后,Wasm模块的大小可以减少到Docker镜像的1/138。
  5. 图表和数据

    • 尽管无法直接显示图表,但文中提到了多个图表,如图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在这些领域的显著优势,并为未来的研究提供了方向。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

android仿assistivetouch悬浮窗实现(带功能实现)

一、悬浮窗点击后的界面: 主要有四个功能,返回、应用程序、退出和主界面。其他功能也可以类似添加。 界面布局代码就不贴出来了,源码(切记需要签名才能让功能实现):下载地址 二、主要是检测系统启动或者a…

时序数据库荣登巅峰,被央视报道了!

8月30日,事务处理性能委员会TPC正式公布了最新的国际权威数据库性能基准榜单,“清华系”发起研制的Apache IoTDB开发的国产化时序数据库软件TimechoDB,在性能和系统成本维度上双双打破世界纪录。在央视《24小时》节目中,1分34秒重…

《黑神话:悟空》与游戏经济学的深度剖析

《黑神话:悟空》作为近年来备受瞩目的国产3A游戏大作,自其发布以来,不仅在游戏界内引起了轰动,更在多个消费领域产生了深远的影响。这款游戏不仅以其卓越的品质和深刻的文化内涵吸引了大量玩家的关注,还通过一系列连锁…

神策埋点 sensorsdata.es6.min.js、sensorsdata.min.js 触发eslint 语法检查,导致打包不成功

问题描述: 在使用神策埋点时,下载的web js sdk,打包时eslint 语法检查,会导致打包不成功。npm start没问题。 主要错误是: Line 1:204272: Expected an assignment or function call and instead saw an expression …

[Python]之深拷贝与浅拷贝

Python之深拷贝与浅拷贝 概述: ​ 大白话解释就是 深拷贝拷贝的多, 浅拷贝拷贝的少. 深浅拷贝区别就是: 拷贝的层级的多与少. 深浅拷贝都能操作可变类型 和 不可变类型, 但是深浅拷贝一般操作的都是 可变类型, 几乎不会出操作不可变类型的. 可变类型 和 不可变类型的划分依…

openssl RSA 密钥(key)、证书签名请求(csr)、证书(cer)的生成和例子

1. RSA 密钥(key)、证书签名请求(csr)、证书(cer)的生成顺序 2. 具体操作 a. 生成 RSA 密钥(私钥) openssl genrsa -aes256 -out ca.key 2048b. 生成证书签名请求(csr) # C-----国家(Country…

Oracle超详细(数据库编程)

目录 一、数据类型 (一)数值型数据类型 (二)字符型数据类型 (三)日期和时间型数据类型 (四)大对象和二进制数据类型 (五)其他数据类型 (六&…

离散余弦变换(Discrete Cosine Transform, DCT),信号去噪

介绍 离散余弦变换(Discrete Cosine Transform, DCT)是一种常用的信号处理工具,特别是在数据压缩、图像处理和模式识别等领域中。DCT的基本思想是将信号从空间域或时间域转换到频率域,以揭示信号中的频率成分。与离散傅里叶变换&…

C/C++网络编程--文件分块传输

文件分块传输是网络编程中一个常见的任务,尤其是在处理大文件时,将文件分块可以提高传输效率,简化错误处理,并可以实现并发传输。下面,写个从客户端向服务器发送大型数据的demo。 客户端 客户端有两点需要注意&#…

vue组件中的数据传递(2)--子组件传父组件

两种情况 子主动传 vue 父传子 子传父实现方式_vue父传子-CSDN博客 vue父子组件传值,父传子,子传父_父传子 且随时变化-CSDN博客 父主动要 Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值_父传子传-CSDN博客

File Transfer Server 文件传输服务器插件

您需要在本地不同设备之间传输文件吗?现在你可以做到了,你不必安装任何专用服务器。 文件传输服务器为您的游戏或应用程序添加了将文件从任何受支持的平台传输到任何受支持平台的能力。从移动到独立,从移动到移动等(查看支持的平台) 优势: -完整的源代码可用。 -不需要预…

【揭秘心梗元凶】不容忽视的七大生活习惯,竟是心梗“幕后推手”!

在这个快节奏的时代,心梗(急性心肌梗死)这一健康杀手正悄然逼近,威胁着越来越多人的生命安全。心梗不仅发病急骤,后果往往也极为严重。那么,心梗究竟是如何引起的?今天,我们就来揭开…

Leetcode面试经典150题-239.滑动窗口最大值

解法都在代码里,不懂就留言或者私信 官方定级hard难度,其实是medium,确实字节考过 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {if(nums.length 1) {return new int[]{nums[0]};}/**我们要返回的是一个数组&#…

SoM的理解

对于终端客户来说,要思考到底怎么做一款产品。目前好像主流的就是SoC和SoM。以前联发科是有Turnkey项目,不过我记得我参与的项目,都是直接拿原厂的参考设计,基本上就是改一个壳,电路板,IO啥的都不动&#x…

土壤湿度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 TS.h文件 TS.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 传感器适用于土壤的湿度检测,模块中蓝色的电位器是用于土壤湿度的阈值调节,数字量输出DO可以与…

进程间的通信(IPC)基础了解,匿名管道使用,有名管道使用

进程间通信基本知识 进程间通信的定义 进程间通信方式分类 匿名管道(pipe) 匿名管道介绍 创建方式:使用 pipe 系统调用创建,返回一对文件描述符(读端和写端)。生命周期:匿名管道的生命周期与…

为什么说RAG是AI 2.0时代的“杀手级”应用?

复旦AI博士,分享AI领域全维度知识与研究。应极客时间邀请开设《RAG快速开发实战》课程,感兴趣的同学可以访问关注 https://time.geekbang.com/column/intro/100804101 随着 AI 2.0 时代的来临,我们正站在一个技术革新和行业变革的交汇点。大语…

Vue3优化表单标签与布局,解决文字过长问题(附Demo)

目录 前言1. 增加标签宽度(生效)2. 工具提示 Tooltip(勉勉强强)3. 缩小字体(不生效)4. CSS 控制换行(不推荐) 前言 好不容易构思整个表单的布局,但是个别表单的文字过长…

springboot整合logback进行日志管理(上篇)

1、前言: 在日常开发中日志的打印与日志的记录是非常重要的。市面上主流的日志管理框架有log4j、logback,二者各有优缺点v,由于项目中比较常用的是logback(我们自己项目就是用的logback),进行就主要介绍一下logback在真是项目中是如何整合的。 2、springboot默认整合的logb…

NASA数据集:50 m分辨率的雪水当量(SWE)地图的集合

ASO L4 Lidar Snow Water Equivalent 50m UTM Grid V001 ASO L4 激光雷达雪水当量 50 米UTM 网格,第 1 版 简介 该数据集包含 50 米网格雪水当量 (SWE) 值,是 NASA/JPL 机载雪地观测站 (ASO) 飞机勘测活动的一部分。 这些数据来自 ASO L4 Lidar Snow …