nighthawk-ingress: let run-dev.sh run more actors than workers (#1982)

`run-dev.sh` refused to start unless the Running worker count was at
least `--actors`, on the assumption that each worker hosts one actor. It
does not: a worker advertises capacity for many actors and the scheduler
packs them.

> It's a good idea to open an issue first for discussion.

- [ ] Tests pass
- [ ] Appropriate changes to documentation are included in the PR
This commit is contained in:
haiyanmeng
2026-09-29 17:38:32 +00:00
committed by GitHub
parent 4f9c293e48
commit 4672e95a20
+4 -3
View File
@@ -36,7 +36,7 @@ usage() {
cat <<EOF cat <<EOF
Usage: $0 [options] Usage: $0 [options]
--envoy-cpu N router cpu pin, the independent variable (default: ${ENVOY_CPU}) --envoy-cpu N router cpu pin, the independent variable (default: ${ENVOY_CPU})
--actors N actor fleet size; needs that many workers Running (default: ${ACTORS}) --actors N actor fleet size; needs at least one worker Running (default: ${ACTORS})
--tail-latency-slo-ms N SLO bound; 0 disables (default: ${TAIL_LATENCY_SLO_MS}) --tail-latency-slo-ms N SLO bound; 0 disables (default: ${TAIL_LATENCY_SLO_MS})
--atespace NAME actor namespace (default: ${ATESPACE}) --atespace NAME actor namespace (default: ${ATESPACE})
--dest gs://... results root (default: gs://\$BUCKET_NAME/nighthawk-ingress-results) --dest gs://... results root (default: gs://\$BUCKET_NAME/nighthawk-ingress-results)
@@ -84,9 +84,10 @@ kubectl get deployment atenet-router -n ate-system >/dev/null 2>&1 || {
exit 1 exit 1
} }
# A worker hosts many actors, so the fleet can outnumber the workers.
RUNNING_WORKERS="$(kubectl get pods -n benchmark-workloads --no-headers 2>/dev/null | grep -c ' Running ' || true)" RUNNING_WORKERS="$(kubectl get pods -n benchmark-workloads --no-headers 2>/dev/null | grep -c ' Running ' || true)"
if (( RUNNING_WORKERS < ACTORS )); then if (( RUNNING_WORKERS < 1 )); then
echo "ERROR: ${RUNNING_WORKERS} workers Running in benchmark-workloads, need ${ACTORS}. Run:" >&2 echo "ERROR: no workers Running in benchmark-workloads. Run:" >&2
echo " benchmarking/workloads/deploy.sh --deploy --worker-count ${ACTORS} --sandbox-class gvisor" >&2 echo " benchmarking/workloads/deploy.sh --deploy --worker-count ${ACTORS} --sandbox-class gvisor" >&2
exit 1 exit 1
fi fi