FunctionBench

Informacje podstawowe

  • Nazwa: FunctionBench — A Suite of Workloads for Serverless Cloud Function Service
  • Alias: FunctionBench
  • Dziedzina: Cloud Computing, Serverless, FaaS
  • Typ: benchmark suite (syntetyczne workloady)

Źródło

Charakterystyka

  • Rozmiar: 7 funkcji benchmark (reprezentatywne typy obciążeń)
  • Podział: brak podziału — benchmark do eksperymentów
  • Format: Python (AWS Lambda / Docker)
  • Licencja: Apache 2.0

Opis

Zbiór reprezentatywnych funkcji serverless pokrywający różne typy obciążeń:

FunkcjaTypOpis
ddI/O-bounddisk read/write (Data Duplicate)
imageCPU + Memoryprzetwarzanie obrazów (thumbnail)
videoCPU + I/Otranskodowanie video
AESCPU-boundszyfrowanie AES-128
jsonCPU + Memoryserializacja/deserializacja JSON
CNNCPU-heavyinferencja sieci neuronowej (ResNet)
ml_trainCPU-heavytrenowanie modelu ML (sklearn)

Funkcje mają zróżnicowane profile energetyczne: dd (I/O, niewidoczny dla RAPL), AES (CPU, ~21J/wywołanie), CNN (CPU heavy, ~37J/wywołanie).

Zastosowania

  • Benchmarking control planes FaaS (Ilúvatar, OpenWhisk, AWS Lambda)
  • Walidacja narzędzi pomiarowych energii (FaasMeter vs Scaphandre)
  • Ewaluacja metodologii disagregacji energii
  • Mapowanie z produkcyjnych trace’ów (Azure Function Trace)

Używany w publikacjach

  • rehman-faasmeter-energy-2024 - walidacja FaasMeter: funkcje FunctionBench jako workload; cosine similarity 0.984-0.998 (FaasMeter) vs 0.623-0.910 (Scaphandre); kluczowy wniosek: dd (I/O) niewidoczny dla Scaphandre (RAPL CPU-only), FaasMeter: ~16J (poprawne)

Benchmarki

FunkcjaExecution TimeEnergy/invok (Desktop)Scaphandre accuracy
dd~0.7s16.0J~0J (błąd 100%)
AES~1.4s21.3J~20J (ok)
CNN~1.3s37.0J~28J (underest. ~25%)

Uwagi

Kluczowa obserwacja: funkcje I/O-bound (dd) są całkowicie niewidoczne dla narzędzi bazujących wyłącznie na RAPL (Scaphandre). To ważna implikacja dla benchmarkowania runtimeów JS — workloady z I/O (fetch, fs) wymagają metody wykraczającej poza CPU-only monitoring.

dataset benchmark serverless faas