Skip to content

vHive Benchmarking

Dmitrii Ustiugov edited this page Feb 25, 2021 · 12 revisions

Pre-requisites

git clone --single-branch --branch deployment https://github.com/ease-lab/vhive-bench.git
cd vhive-bench
bash initialize_machine.sh

Data transfer functions then need to be deployed to vHive:

  • Save the following in prod-cons.yaml:
cat > prod-cons.yaml <<- EOM
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: crccheck/hello-world:latest # Stub image. See https://github.com/ease-lab/vhive/issues/68
          ports:
            - name: h2c # For GRPC support
              containerPort: 50051
          env:
            - name: GUEST_PORT # Port on which the firecracker-containerd container is accepting requests
              value: "50051"
            - name: GUEST_IMAGE # Container image to use for firecracker-containerd container
              value: "vhiveease/vhive-bench:latest"
EOM
  • Start the functions:
kn service apply producer -f prod-cons.yaml --concurrency-target 1 --scale=1
kn service apply consumer -f prod-cons.yaml --concurrency-target 1 --scale=1

Benchmarking:

vHive inline data transfers:

sudo ./main -o latency-samples -g endpoints -c experiments/data-transfer/inline/vhive/quick-warm-IAT10s.json

vHive storage data transfers:

  • Create K8s minio storage:
sudo mkdir -p /minio-storage
cd ~/vhive/configs/storage/minio
MINIO_NODE_NAME=$HOSTNAME MINIO_PATH=/minio-storage envsubst < pv.yaml | kubectl apply -f -
kubectl apply -f pv-claim.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
  • Create K8s minio bucket:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin
mc alias set myminio http://10.96.0.46:9000 minio minio123
mc mb myminio/mybucket
  • Run the tool:
sudo ./main -o latency-samples -g endpoints -c experiments/data-transfer/storage/vhive-minio/quick-warm-IAT10s.json
Clone this wiki locally