perf(acceptance): 解耦 API 媒体请求并发
生产同构验收将 API 请求体并发独立配置为 AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY,默认每个 API 128;Worker 执行槽和媒体物化仍按 P24/P28/P32 阶梯变化。\n\n这避免同步 Gemini 请求在整个任务生命周期占用仅 24/28/32 个入口槽,并继续由 RSS 与节点内存门禁验证安全上限。\n\n验证:bash -n;shellcheck -x;git diff --check。
This commit is contained in:
@@ -29,6 +29,7 @@ Optional model overrides (otherwise selected from current production candidates)
|
|||||||
AI_GATEWAY_ACCEPTANCE_VIDEO_MODEL
|
AI_GATEWAY_ACCEPTANCE_VIDEO_MODEL
|
||||||
AI_GATEWAY_ACCEPTANCE_GATEWAY_TLS_SERVER_NAME
|
AI_GATEWAY_ACCEPTANCE_GATEWAY_TLS_SERVER_NAME
|
||||||
AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS
|
AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS
|
||||||
|
AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,6 +54,7 @@ require_commands curl git jq node openssl sed
|
|||||||
: "${AI_GATEWAY_ACCEPTANCE_GEMINI_MODEL:=}"
|
: "${AI_GATEWAY_ACCEPTANCE_GEMINI_MODEL:=}"
|
||||||
: "${AI_GATEWAY_ACCEPTANCE_VIDEO_MODEL:=}"
|
: "${AI_GATEWAY_ACCEPTANCE_VIDEO_MODEL:=}"
|
||||||
: "${AI_GATEWAY_ACCEPTANCE_API_DATABASE_MAX_CONNS:=64}"
|
: "${AI_GATEWAY_ACCEPTANCE_API_DATABASE_MAX_CONNS:=64}"
|
||||||
|
: "${AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY:=128}"
|
||||||
: "${AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS:=32}"
|
: "${AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS:=32}"
|
||||||
: "${AI_GATEWAY_ACCEPTANCE_GATEWAY_TLS_SERVER_NAME:=}"
|
: "${AI_GATEWAY_ACCEPTANCE_GATEWAY_TLS_SERVER_NAME:=}"
|
||||||
: "${AI_GATEWAY_ACCEPTANCE_GATEWAYS:?}"
|
: "${AI_GATEWAY_ACCEPTANCE_GATEWAYS:?}"
|
||||||
@@ -62,6 +64,11 @@ require_commands curl git jq node openssl sed
|
|||||||
echo 'AI_GATEWAY_ACCEPTANCE_API_DATABASE_MAX_CONNS must be between 1 and 256' >&2
|
echo 'AI_GATEWAY_ACCEPTANCE_API_DATABASE_MAX_CONNS must be between 1 and 256' >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
[[ $AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY =~ ^[1-9][0-9]*$ &&
|
||||||
|
$AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY -le 1024 ]] || {
|
||||||
|
echo 'AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY must be between 1 and 1024' >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
[[ $AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS =~ ^[1-9][0-9]*$ &&
|
[[ $AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS =~ ^[1-9][0-9]*$ &&
|
||||||
$AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS -le 128 ]] || {
|
$AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS -le 128 ]] || {
|
||||||
echo 'AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS must be between 1 and 128' >&2
|
echo 'AI_GATEWAY_ACCEPTANCE_IDENTITY_SHARDS must be between 1 and 128' >&2
|
||||||
@@ -897,7 +904,7 @@ apply_capacity_profile() {
|
|||||||
"AI_GATEWAY_DATABASE_MIN_IDLE_CONNS=$min_idle" \
|
"AI_GATEWAY_DATABASE_MIN_IDLE_CONNS=$min_idle" \
|
||||||
"AI_GATEWAY_DATABASE_MAX_CONN_IDLE_SECONDS=$max_idle_seconds" \
|
"AI_GATEWAY_DATABASE_MAX_CONN_IDLE_SECONDS=$max_idle_seconds" \
|
||||||
"AI_GATEWAY_MEDIA_MATERIALIZATION_CONCURRENCY=$media" \
|
"AI_GATEWAY_MEDIA_MATERIALIZATION_CONCURRENCY=$media" \
|
||||||
"AI_GATEWAY_MEDIA_REQUEST_CONCURRENCY=$media" >/dev/null
|
"AI_GATEWAY_MEDIA_REQUEST_CONCURRENCY=$AI_GATEWAY_ACCEPTANCE_API_MEDIA_REQUEST_CONCURRENCY" >/dev/null
|
||||||
remote_kubectl rollout status "deployment/easyai-api-$site" \
|
remote_kubectl rollout status "deployment/easyai-api-$site" \
|
||||||
-n "$namespace" --timeout=300s
|
-n "$namespace" --timeout=300s
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user