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
- URL: https://github.com/kmu-bigdata/serverless-faas-workload
- Paper: Kim & Lee, “FunctionBench: A Suite of Workloads for Serverless Cloud Function Service,” IEEE Cloud 2019
- Organizacja: Korea University (KMU Big Data Lab)
- Rok: 2019
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ń:
| Funkcja | Typ | Opis |
|---|---|---|
dd | I/O-bound | disk read/write (Data Duplicate) |
image | CPU + Memory | przetwarzanie obrazów (thumbnail) |
video | CPU + I/O | transkodowanie video |
AES | CPU-bound | szyfrowanie AES-128 |
json | CPU + Memory | serializacja/deserializacja JSON |
CNN | CPU-heavy | inferencja sieci neuronowej (ResNet) |
ml_train | CPU-heavy | trenowanie 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
| Funkcja | Execution Time | Energy/invok (Desktop) | Scaphandre accuracy |
|---|---|---|---|
| dd | ~0.7s | 16.0J | ~0J (błąd 100%) |
| AES | ~1.4s | 21.3J | ~20J (ok) |
| CNN | ~1.3s | 37.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.