five

FaaSdom

收藏
arXiv2020-06-05 更新2024-07-31 收录
下载链接:
https://github.com/bschitter/benchmark-suite-serverless-computing
下载链接
链接失效反馈
官方服务:
资源简介:
FaaSdom是由瑞士弗里堡大学计算机科学系开发的基准测试套件,专注于无服务器计算平台。该套件支持主流云服务提供商,如AWS、Azure、Google和IBM,并提供广泛的测试和多种编程语言。FaaSdom自动化部署、执行和清理测试,为无服务器应用提供性能洞察。此外,它还集成了一个模型来估计跨支持提供商的部署预算成本。FaaSdom的应用领域包括帮助开发者选择最适合其应用的云服务提供商,以优化性能、可靠性和成本。

FaaSdom is a benchmarking suite developed by the Department of Computer Science, University of Fribourg, Switzerland, focusing on serverless computing platforms. It supports major cloud service providers such as AWS, Azure, Google and IBM, and offers extensive testing capabilities along with support for multiple programming languages. FaaSdom automates the deployment, execution and cleanup of tests, providing performance insights for serverless applications. Additionally, it integrates a model for estimating deployment budget costs across the supported providers. The application domains of FaaSdom include assisting developers in selecting the most suitable cloud service provider for their applications to optimize performance, reliability and costs.
提供机构:
瑞士弗里堡大学计算机科学系
创建时间:
2020-06-05
原始信息汇总

无服务器计算基准测试套件

概述

该工具使用 Node.js 编写,用于对以下云服务提供商的无服务器平台进行基准测试:

支持的编程语言包括:

可用测试

  • 延迟测试: 测量一个非常简单的函数的延迟。
  • CPU 测试(因子): 通过迭代计算一个数的因子来基准测试 CPU 性能。
  • CPU 测试(矩阵): 通过迭代乘以两个 NxN 矩阵来基准测试 CPU 性能。
  • 文件系统测试: 将一个 x kB 的文本文件写入和读取 n 次到文件系统。
  • 自定义测试: 实现你自己的测试,提供模板。

安装

对于 Ubuntu 18.04,可以执行以下步骤:

bash sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt-get update sudo apt-get install docker-ce docker-compose

将你的用户添加到 docker 组(如果不想总是使用 sudo 运行)

sudo groupadd docker sudo usermod -aG docker $USER

配置

对于每个云服务提供商,你需要创建一个账户并进行一些设置:

还需要创建一些 Docker 卷并登录到云 CLI,以便在 Docker 容器中使用。

bash

创建 5 个卷,1 个用于应用数据,4 个用于每个云的密钥

docker volume create serverless-data docker volume create aws-secrets docker volume create google-secrets docker volume create ibm-secrets docker volume create azure-secrets

将所有数据复制到 Docker 卷(重要:从项目根目录运行!)

docker run -v serverless-data:/data --name helper bschitter/alpine-with-zip:0.1 docker cp . helper:/data docker rm helper

挂载卷并使用云服务提供商登录

docker run --rm -tiv aws-secrets:/root/.aws mikesir87/aws-cli:1.16.310 aws configure docker run --rm -tiv azure-secrets:/root/.azure mcr.microsoft.com/azure-cli:2.0.78 az login docker run --rm -tiv google-secrets:/root/.config/gcloud google/cloud-sdk:274.0.1-alpine gcloud init docker run --rm -tiv ibm-secrets:/root/.bluemix ibmcom/ibm-cloud-developer-tools-amd64:0.20.0 ibmcloud login

对于 IBM,还需要设置区域、API 端点、组织和空间

docker run --rm -tiv ibm-secrets:/root/.bluemix ibmcom/ibm-cloud-developer-tools-amd64:0.20.0 ibmcloud target -r <YOUR_REGION> --cf-api https://api.<YOUR_REGION>.cf.cloud.ibm.com -o <YOUR_ORGANIZATION> -s <YOUR_SPACE>

使用

启动应用程序

main 文件夹中启动主应用程序:

bash docker-compose up -d db grafana app

应用程序的 Web 界面将暴露在端口 3001 http://localhost:3001

Grafana 将暴露在端口 3000 http://localhost:3000

操作

可以执行以下操作:

部署/删除

用户可以部署和删除测试。存在以下参数:

  • Test: 要部署的测试
  • Memory: 函数实例的内存量(不适用于 Azure)
  • Timeout: 函数超时(不适用于 Azure)
  • Clouds: 要部署函数的云
  • Languages: 要部署的运行时
  • Locations: 为每个云选择区域

Deploy 按钮将启动部署过程,Cleanup All 按钮将清理所有内容。状态可以在右侧查看。

重要提示: 清理过程将删除 AWS 上的所有 API 网关和 Lambda 函数,Azure 上包含测试名称的所有资源组,Google 上配置项目的所有函数,以及 IBM 上的所有函数和网关。请谨慎使用!

运行比较测试

运行比较测试。存在以下参数:

  • Test name: 用于标识测试的名称
  • Function dependant paramters: 各种函数依赖参数

可以使用 Run 按钮启动测试,使用 Stop 按钮停止测试。结果将在 Grafana 中查看。

运行基准测试

为已部署的函数运行负载测试。存在以下参数:

  • Requests per second: 每秒发送的请求数
  • Duration: 基准测试的持续时间
  • Test: 要基准测试的测试
  • N: 函数依赖参数
  • Test name: 用于标识测试的名称

应用程序将使用 wrk2 对已部署的函数进行基准测试。结果将在 Grafana 中查看。

计算理论定价

通过提供以下参数计算假设价格:

  • Calls: 每月调用次数
  • Execution Time: 函数的估计执行时间(以毫秒为单位)
  • Return Size: 返回的函数体的大小(以 KB 为单位)
  • Memory: 为函数选择的内存分配

Calculate / Update 按钮将进行计算,结果将显示在右侧。

根据测试计算定价

根据特定测试计算价格:

  • Calls: 每月调用次数
  • Test: 因子、矩阵、自定义
  • Test Name: 比较测试期间给出的名称
  • Runtime: 要计算的运行时

Calculate / Update 按钮将进行计算,结果将显示在右侧。

清理

停止并删除容器:

bash docker-compose down

删除所有镜像:

bash docker rmi $(docker images -q)

删除所有卷:

bash docker volume rm $(docker volume ls -q)

故障排除

IBM

  • 有时删除函数时,ibmcloud CLI 会无法加载资源,因此程序无法正确删除资源。这通常发生在长时间未使用后第一次使用时。
  • IBM Cloud 使用一个会过期的身份验证令牌。一段时间后,你需要重新登录并配置。请参阅 Configure 部分。
  • 有时 IBM CLI 会返回错误 Unable to create API: Request accepted, but processing not completed yet.,但函数很可能会正确部署。

Azure

  • Azure 的超时参数目前被忽略,因为部署机制的实现方式不容易支持它。
搜集汇总
数据集介绍
main_image_url
构建方式
在无服务器计算领域,FaaSdom基准测试套件采用模块化架构设计,通过集成主流云服务提供商(如AWS、Azure、Google和IBM)的API,实现了跨平台自动化部署与测试。该套件利用Docker容器技术封装核心组件,包括基于Node.js的主应用程序、时间序列数据库InfluxDB以及可视化工具Grafana,支持多语言运行时环境(如Node.js、Python、Go和.NET Core)。构建过程中,系统通过命令行工具自动化完成函数部署、资源组配置及测试执行,并采用wrk2等负载注入工具模拟多样化工作负载,从而实现对无服务器平台性能的全面评估。
特点
FaaSdom基准测试套件具备高度可扩展性与跨平台兼容性,覆盖四大主流云服务提供商的无服务器计算服务。其核心特点包括支持多种编程语言运行时环境,提供包括CPU密集型、网络延迟及磁盘I/O在内的多样化基准测试用例,并集成实时性能监控与历史数据追踪功能。该套件通过自动化工作流实现测试部署、执行与清理的全周期管理,同时内置成本估算模型,能够基于性能数据预测不同云平台的经济开销。此外,其开源特性与模块化设计便于社区贡献与功能扩展,为无服务器计算研究提供了标准化评估框架。
使用方法
用户可通过FaaSdom的Web图形界面或REST API启动基准测试流程,首先配置目标云提供商、运行时语言、内存分配及地理区域等参数。系统随后自动化部署测试函数,并利用集成负载生成器(如wrk2)模拟从低负载到高并发的请求场景,持续收集延迟、吞吐量及资源使用率等性能指标。测试结果实时存储于InfluxDB数据库,并通过Grafana仪表板进行可视化分析,支持历史数据对比与趋势洞察。同时,用户可利用内置成本计算器,基于工作负载特征预估各云平台的经济成本,从而为无服务器应用部署提供数据驱动的决策依据。
背景与挑战
背景概述
无服务器计算作为云计算领域的重要范式,近年来受到广泛关注。FaaSdom数据集由瑞士弗里堡大学与纳沙泰尔大学的研究团队于2020年联合创建,旨在解决无服务器平台性能评估标准缺失的问题。该数据集聚焦于函数即服务(FaaS)平台的基准测试,涵盖AWS、Azure、Google和IBM等主流云服务商,通过自动化部署与测试框架,为开发者提供跨平台性能、成本及可扩展性的量化分析工具。其研究成果发表于ACM分布式与事件驱动系统国际会议(DEBS 2020),为无服务器计算生态的标准化比较奠定了实证基础,推动了云原生应用架构的优化与创新。
当前挑战
FaaSdom数据集致力于应对无服务器计算领域的两大核心挑战:一是解决跨平台性能评估的复杂性,由于各云服务商的FaaS实现存在异构性,在运行时支持、资源分配模型及计费策略等方面差异显著,导致性能横向对比困难;二是构建过程中需克服技术集成障碍,包括多云环境自动化部署的协调、冷启动效应监测的精确性,以及针对不同编程语言和测试负载的适配问题。此外,数据集还需确保基准测试的扩展性与可重复性,以应对快速演进的无服务器技术栈。
常用场景
经典使用场景
在无服务器计算领域,FaaSdom 数据集作为一套基准测试套件,其经典使用场景在于为研究人员和开发者提供跨主流云服务提供商(如 AWS、Azure、Google 和 IBM)的性能评估框架。通过自动化部署、执行和清理测试流程,该数据集能够模拟多种工作负载,包括 CPU 密集型、网络延迟和 I/O 密集型任务,从而帮助用户在不同编程语言和运行时环境下,系统性地比较各平台在函数执行速度、自动扩展机制及成本效益方面的表现。
解决学术问题
FaaSdom 数据集解决了无服务器计算中缺乏标准化性能评估工具的学术研究问题。它通过模块化架构支持多语言、多提供商的基准测试,填补了现有研究在跨平台比较、弹性伸缩评估和成本建模方面的空白。该数据集的意义在于为学术界提供了可重复的实验基础,促进了关于无服务器系统性能、可靠性和经济性分析的深入探讨,推动了云计算领域向更透明、可预测的方向发展。
衍生相关工作
FaaSdom 数据集衍生了一系列相关经典工作,包括对无服务器平台弹性机制的深入研究、跨提供商成本模型的扩展分析,以及基于机器学习方法的性能预测工具开发。例如,后续研究利用该数据集的基准测试结果,探讨了闪存人群场景下的自动扩展行为,并开发了更精细的计费估算模块。这些工作进一步推动了无服务器计算生态系统的标准化与创新,为行业实践提供了理论支撑。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作