Skip to content

Commit

Permalink
removed pods_in_node and utilizing max_pods
Browse files Browse the repository at this point in the history
  • Loading branch information
karina-ranadive committed Jan 15, 2025
1 parent d1e8fe3 commit 2fc46aa
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 16 deletions.
20 changes: 8 additions & 12 deletions modules/python/clusterloader2/slo/slo.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
}
# TODO: Remove aks once CL2 update provider name to be azure

def calculate_config(cpu_per_node, node_count, pods_in_node, provider, service_test, cnp_test, ccnp_test):
def calculate_config(cpu_per_node, node_count, max_pods, provider, service_test, cnp_test, ccnp_test):
throughput = 100
nodes_per_namespace = min(node_count, DEFAULT_NODES_PER_NAMESPACE)

Expand All @@ -33,7 +33,7 @@ def calculate_config(cpu_per_node, node_count, pods_in_node, provider, service_t
pods_per_node = LOAD_PODS_PER_NODE

if cnp_test or ccnp_test:
pods_per_node = pods_in_node
pods_per_node = max_pods
# Different cloud has different reserved values and number of daemonsets
# Using the same percentage will lead to incorrect nodes number as the number of nodes grow
# For AWS, see: https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh#L290
Expand All @@ -49,7 +49,6 @@ def configure_clusterloader2(
node_count,
node_per_step,
max_pods,
pods_in_node,
repeats,
operation_timeout,
provider,
Expand All @@ -63,7 +62,7 @@ def configure_clusterloader2(
override_file):

steps = node_count // node_per_step
throughput, nodes_per_namespace, pods_per_node, cpu_request = calculate_config(cpu_per_node, node_per_step, pods_in_node, provider, service_test, cnp_test, ccnp_test)
throughput, nodes_per_namespace, pods_per_node, cpu_request = calculate_config(cpu_per_node, node_per_step, max_pods, provider, service_test, cnp_test, ccnp_test)

with open(override_file, 'w') as file:
file.write(f"CL2_LOAD_TEST_THROUGHPUT: {throughput}\n")
Expand Down Expand Up @@ -131,7 +130,6 @@ def collect_clusterloader2(
cpu_per_node,
node_count,
max_pods,
pods_in_node,
repeats,
cl2_report_dir,
cloud_info,
Expand All @@ -156,7 +154,7 @@ def collect_clusterloader2(
else:
raise Exception(f"No testsuites found in the report! Raw data: {details}")

_, _, pods_per_node, _ = calculate_config(cpu_per_node, node_count, pods_in_node, provider, service_test, cnp_test, ccnp_test)
_, _, pods_per_node, _ = calculate_config(cpu_per_node, node_count, max_pods, provider, service_test, cnp_test, ccnp_test)
pod_count = node_count * pods_per_node

# TODO: Expose optional parameter to include test details
Expand Down Expand Up @@ -219,8 +217,7 @@ def main():
parser_configure.add_argument("cpu_per_node", type=int, help="CPU per node")
parser_configure.add_argument("node_count", type=int, help="Number of nodes")
parser_configure.add_argument("node_per_step", type=int, help="Number of nodes per scaling step")
parser_configure.add_argument("max_pods", type=int, help="Maximum number of pods per node")
parser_configure.add_argument("pods_in_node", type=int, nargs='?', default=0, help="Number of pods per node")
parser_configure.add_argument("max_pods", type=int, nargs='?', default=0, help="Maximum number of pods per node")
parser_configure.add_argument("repeats", type=int, help="Number of times to repeat the deployment churn")
parser_configure.add_argument("operation_timeout", type=str, help="Timeout before failing the scale up test")
parser_configure.add_argument("provider", type=str, help="Cloud provider name")
Expand Down Expand Up @@ -256,8 +253,7 @@ def main():
parser_collect = subparsers.add_parser("collect", help="Collect scale up data")
parser_collect.add_argument("cpu_per_node", type=int, help="CPU per node")
parser_collect.add_argument("node_count", type=int, help="Number of nodes")
parser_collect.add_argument("max_pods", type=int, help="Maximum number of pods per node")
parser_collect.add_argument("pods_in_node", type=int, nargs='?', default=0, help="Number of pods per node")
parser_collect.add_argument("max_pods", type=int, nargs='?', default=0, help="Maximum number of pods per node")
parser_collect.add_argument("repeats", type=int, help="Number of times to repeat the deployment churn")
parser_collect.add_argument("cl2_report_dir", type=str, help="Path to the CL2 report directory")
parser_collect.add_argument("cloud_info", type=str, help="Cloud information")
Expand All @@ -281,15 +277,15 @@ def main():

if args.command == "configure":
configure_clusterloader2(args.cpu_per_node, args.node_count, args.node_per_step, args.max_pods,
args.pods_in_node, args.repeats, args.operation_timeout, args.provider, args.cilium_enabled,
args.repeats, args.operation_timeout, args.provider, args.cilium_enabled,
args.service_test, args.cnp_test, args.ccnp_test, args.num_cnps, args.num_ccnps, args.dualstack, args.cl2_override_file)
elif args.command == "validate":
validate_clusterloader2(args.node_count, args.operation_timeout)
elif args.command == "execute":
execute_clusterloader2(args.cl2_image, args.cl2_config_dir, args.cl2_report_dir, args.cl2_config_file,
args.kubeconfig, args.provider)
elif args.command == "collect":
collect_clusterloader2(args.cpu_per_node, args.node_count, args.max_pods, args.pods_in_node, args.repeats,
collect_clusterloader2(args.cpu_per_node, args.node_count, args.max_pods, args.repeats,
args.cl2_report_dir, args.cloud_info, args.run_id, args.run_url,
args.service_test, args.cnp_test, args.ccnp_test, args.num_cnps, args.num_ccnps, args.dualstack, args.result_file, args.test_type)

Expand Down
3 changes: 1 addition & 2 deletions pipelines/perf-eval/CNI Benchmark/cnp-ccnp-feature.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ stages:
cpu_per_node: 4
node_count: $(NODES)
node_per_step: $(STEP_NODES)
max_pods: 110
pods_in_node: $(PODS)
max_pods: $(MAX_PODS_IN_NODE)
repeats: 1
scale_timeout: "15m"
cilium_enabled: True
Expand Down
5 changes: 4 additions & 1 deletion steps/engine/clusterloader2/slo/collect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@ steps:
- script: |
set -eo pipefail
echo "max : ${MAX_PODS}"
echo "${MAX_PODS:-0}"
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE collect \
$CPU_PER_NODE $NODE_COUNT $MAX_PODS ${PODS_IN_NODE:-0} \
$CPU_PER_NODE $NODE_COUNT ${MAX_PODS:-0} \
$REPEATS $CL2_REPORT_DIR "$CLOUD_INFO" $RUN_ID $RUN_URL $SERVICE_TEST ${CNP_TEST:-False} ${CCNP_TEST:-False} ${NUM_CNPS:-0} ${NUM_CCNPS:-0} ${DUALSTACK:-False} $TEST_RESULTS_FILE \
$TEST_TYPE
workingDirectory: modules/python/clusterloader2
Expand Down
5 changes: 4 additions & 1 deletion steps/engine/clusterloader2/slo/execute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@ steps:
- script: |
set -eo pipefail
echo "max : ${MAX_PODS}"
echo "${MAX_PODS:-0}"
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE configure \
$CPU_PER_NODE $NODE_COUNT $NODE_PER_STEP $MAX_PODS ${PODS_IN_NODE:-0} \
$CPU_PER_NODE $NODE_COUNT $NODE_PER_STEP ${MAX_PODS:-0} \
$REPEATS $SCALE_TIMEOUT $CLOUD $CILIUM_ENABLED \
$SERVICE_TEST ${CNP_TEST:-False} ${CCNP_TEST:-False} ${NUM_CNPS:-0} ${NUM_CCNPS:-0} ${DUALSTACK:-False} ${CL2_CONFIG_DIR}/overrides.yaml
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE execute \
Expand Down

0 comments on commit 2fc46aa

Please sign in to comment.