A project to familiarise benchmarking on vhive, knative.
ª Dockerfile (For Dockerising Worker only)
ª go.mod
ª go.sum
ª hellotest.go (Simple Connection Test Script)
ª README.md
ª worker.proto (protobuf)
ª
+---knative
ª worker-service.yaml (Knative Service Manifest)
ª
+---loadgen
ª ª load.log
ª ª loadgen (Compiled binary of load_generator.go)
ª ª load_generator.go (Main Load Generator script)
ª ª
ª +---logs
+---loadgen_basic
ª load_gen_basic.go (Simple load generator - sends one request. For debug purposes)
ª
+---worker
ª worker.go (Main Worker script)
ª
+---workerpb (client/server interface)
worker.pb.go
worker_grpc.pb.go
- Setup a single cluster node according to the vHive Quickstart Guide or use the provided setup script.
- Clone this repository into the node.
- If the worker image is not pushed into Docker Hub (or another registry), follow steps 4–6. (Ensure Docker is installed:
sudo apt install docker.io) Otherwise, skip to step 7. - Build the image:
docker build -t <userid>/worker:latest -f Dockerfile . - Log in to Docker:
docker login -u <username> - Push the image into the registry:
docker push <userid>/worker:latest - Deploy into Knative:
kubectl apply -f knative/worker-service.yaml - Check if the worker is ready:
kubectl get ksvc worker - Get the Knative service URL (endpoint). Default external port is 80.
- Run the Load Generator (replace
<URL:80>with the worker endpoint):go run loadgen/load_generator.go --worker=<URL:80> - The Load Generator runs and saves output in the
/logsfolder. It measures requests and end-to-end latency (E2E).