read_stall_retry/go-sdk-job.yaml (123 lines of code) (raw):

# Copyright 2025 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: batch/v1 kind: Job metadata: name: slowenvironment-100-nodes-parallel spec: parallelism: 100 completions: 100 completionMode: Indexed template: metadata: labels: app: benchmark-job spec: restartPolicy: Never serviceAccountName: vipinydv-go-sdk hostNetwork: true affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - benchmark-job topologyKey: "kubernetes.io/hostname" containers: - name: go-sdk-tail-read-latency image: ubuntu:20.04 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: JOB_NAME valueFrom: fieldRef: fieldPath: metadata.labels['job-name'] command: - /bin/bash - -c - | set -x set -e export DEBIAN_FRONTEND=noninteractive # Install necessary dependencies apt-get update apt-get install -y curl sudo gnupg git wget # install go architecture=$(dpkg --print-architecture) wget -O go_tar.tar.gz https://go.dev/dl/go1.23.5.linux-${architecture}.tar.gz sudo tar -C /usr/local -xzf go_tar.tar.gz export PATH=${PATH}:/usr/local/go/bin # Clone the custom go client repository and run the benchmark git clone -b read-stall-retry-scale-test https://github.com/raj-prince/custom-go-client-benchmark.git cd custom-go-client-benchmark go run ./ --worker=32 --bucket=vipin-us-west4 --project=gcs-fuse-test --bucket-dir=1B --with-read-stall-timeout=false --output-bucket-path=vipin-logs-and-metrics/metrics/${JOB_NAME}/${POD_NAME}-metrics.csv --total-files-to-read=18000000 >> output-log.txt 2>&1 echo "********* Run Complete ***********" # Set up Google Cloud SDK for future use (if needed) sudo echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list sudo curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - apt-get update apt-get install -y google-cloud-sdk gcloud storage cp output-log.txt gs://vipin-logs-and-metrics/logs/${JOB_NAME}/${POD_NAME}-logs.txt echo "****** Upload Csv complete *******" --- apiVersion: batch/v1 kind: Job metadata: name: slowenvironment-100-nodes-99p-readstall-parallel spec: parallelism: 100 completions: 100 completionMode: Indexed template: metadata: labels: app: benchmark-job spec: restartPolicy: Never serviceAccountName: vipinydv-go-sdk hostNetwork: true affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - benchmark-job topologyKey: "kubernetes.io/hostname" containers: - name: go-sdk-tail-read-latency image: ubuntu:20.04 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: JOB_NAME valueFrom: fieldRef: fieldPath: metadata.labels['job-name'] command: - /bin/bash - -c - | set -x set -e export DEBIAN_FRONTEND=noninteractive # Install necessary dependencies apt-get update apt-get install -y curl sudo gnupg git wget # install go architecture=$(dpkg --print-architecture) wget -O go_tar.tar.gz https://go.dev/dl/go1.23.5.linux-${architecture}.tar.gz sudo tar -C /usr/local -xzf go_tar.tar.gz export PATH=${PATH}:/usr/local/go/bin # Clone and run the benchmark with read-stall-timeout set to true git clone -b read-stall-retry-scale-test https://github.com/raj-prince/custom-go-client-benchmark.git cd custom-go-client-benchmark go run ./ --worker=32 --bucket=vipin-us-west4-second --project=gcs-fuse-test --bucket-dir=1B --with-read-stall-timeout=true --target-percentile=0.99 --min-delay=1500ms --output-bucket-path vipin-logs-and-metrics/metrics/${JOB_NAME}/${POD_NAME}-metrics.csv --total-files-to-read=18000000 >> output-log.txt 2>&1 echo "********* Run Complete ***********" # Set up Google Cloud SDK for future use (if needed) sudo echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list sudo curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - apt-get update apt-get install -y google-cloud-sdk gcloud storage cp output-log.txt gs://vipin-logs-and-metrics/logs/${JOB_NAME}/${POD_NAME}-logs.txt echo "****** Upload Csv complete *******"