From ae24506f446fbc0b6ff1979dd875fad2fc56597d Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Mon, 22 Apr 2024 09:14:36 -0700 Subject: [PATCH] perf: add variable for max parallel image pulls --- vhdbuilder/packer/install-dependencies.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 96c28e4f847..8bc1b6bcedb 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -272,6 +272,9 @@ string_replace() { echo ${1//\*/$2} } +PARALLEL_CONTAINER_IMAGE_PULL_LIMIT=$(nproc --ignore=2) +echo "Limit for parallel container image pulls set to $PARALLEL_CONTAINER_IMAGE_PULL_LIMIT" + declare -a containerImagePids=() ContainerImages=$(jq ".ContainerImages" $COMPONENTS_FILEPATH | jq .[] --monochrome-output --compact-output) @@ -300,7 +303,7 @@ for imageToBePulled in ${ContainerImages[*]}; do pullContainerImage ${cliTool} ${CONTAINER_IMAGE} & containerImagePids+=($!) echo " - ${CONTAINER_IMAGE}" >> ${VHD_LOGS_FILEPATH} - while [[ $(jobs -p | wc -l) -ge 13 ]]; do # Set maximum number of parallel pulls to 13 + while [[ $(jobs -p | wc -l) -ge $PARALLEL_CONTAINER_IMAGE_PULL_LIMIT ]]; do wait -n done done @@ -456,6 +459,9 @@ for KUBE_PROXY_IMAGE_VERSION in ${KUBE_PROXY_IMAGE_VERSIONS}; do CONTAINER_IMAGE="mcr.microsoft.com/oss/kubernetes/kube-proxy:v${KUBE_PROXY_IMAGE_VERSION}" pullContainerImage ${cliTool} ${CONTAINER_IMAGE} & kubeProxyPids+=($!) + while [[ $(jobs -p | wc -l) -ge $PARALLEL_CONTAINER_IMAGE_PULL_LIMIT ]]; do + wait -n + done done wait ${kubeProxyPids[@]} # Wait for all background processes to finish