docs(dev-corp): record 15 concurrency deployment verification
This commit is contained in:
parent
c2437aaede
commit
8ff1489124
4 changed files with 39 additions and 28 deletions
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
name: dev-corp-runtime-deploy
|
||||
version: 1.0.3
|
||||
version: 1.0.4
|
||||
description: dev-corp 배포, 회사망 mac-mini Edge와 내부 DGX/Mac Studio provider pool 배포 및 OpenAI-compatible capacity smoke 절차
|
||||
---
|
||||
|
||||
|
|
@ -60,6 +60,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다.
|
|||
- 2026-07-08 재확인 기준 DGX Spark 02는 Docker `vllm-gemma4` image `vllm/vllm-openai:v0.24.0`, host/container `8004`, text-only/eager profile과 `default_chat_template_kwargs.enable_thinking=true`로 동작하며 mac-mini와 node-local `/health`, `/v1/models`, 직접 API auto/streaming tool-call smoke를 통과했다. startup log에서 GPU KV cache `1,452,633` tokens, full-context concurrency `5.54x`를 확인했다.
|
||||
- 2026-07-02 기준 native Control Plane은 mac-mini provider-pool runtime에서 `18002/19004/19005`를 listen하고, Edge id `dev-corp-edge`가 `127.0.0.1:19005`로 connected 상태다. status URL은 `http://127.0.0.1:18002/edges/dev-corp-edge/status`이다.
|
||||
- 2026-07-08 기준 dev-corp provider-pool Edge OpenAI-compatible capacity smoke 표준은 `/v1/responses`와 `/v1/chat/completions` 각각 15개 동시 요청이다. provider capacity 합은 `4 + 4 + 5 = 13`으로 유지하고, Control Plane provider snapshot에서 peak total `in_flight=13`, `queued>=2`, 완료 후 provider별 `in_flight=0`, `queued=0` 회복을 성공 기준으로 본다.
|
||||
- 2026-07-08 source ref `c2437aaedefbac4312d69dfd10aa017c2739e187` 재배포 검증에서 `/v1/responses`와 `/v1/chat/completions` 모두 15/15 성공했다. 두 endpoint 모두 peak total `in_flight=13`, `queued=6`, provider별 max queued `2`, 최종 회복 `in_flight=0`, `queued=0`으로 통과했으며 원격 evidence는 mac-mini `build/dev-corp-runtime/logs/capacity_15_20260708_155027.json`이다.
|
||||
|
||||
## 실행 절차
|
||||
|
||||
|
|
|
|||
|
|
@ -95,19 +95,19 @@ Mac Studio의 `http://192.168.2.3:8005/v1` mlx-vlm DiffusionGemma endpoint는
|
|||
- Gemma4 agent/tool-call compatibility profile은 DGX Spark 01/02 vLLM에서 `--enable-auto-tool-choice`, `--tool-call-parser gemma4`, Gemma4 tool chat template, `--reasoning-parser gemma4`, `--default-chat-template-kwargs '{"enable_thinking":true}'`, `--enforce-eager`, `--skip-mm-profiling`, `--limit-mm-per-prompt '{"image": 0, "video": 0}'`, `--mm-processor-cache-gb 0`을 함께 둔다. Mac Studio vLLM-MLX는 별도 chat template override 없이 `--continuous-batching`, `--disable-prefix-cache`, `--enable-auto-tool-choice`, `--tool-call-parser gemma4`, `--reasoning-parser gemma4`, `--default-chat-template-kwargs '{"enable_thinking":true}'`를 둔다. Qwen provider는 dev-runtime 문서의 Qwen 전용 parser/template 값을 따른다.
|
||||
- Mac Studio provider runtime은 `vllm-mlx=0.4.0`, provider catalog capacity `5`, context window `262144`, requested KV `262144x3` 기준으로 `--continuous-batching`, runtime headroom `--max-num-seqs 6`, `--prefill-batch-size 6`, `--completion-batch-size 6`, `--chunked-prefill-tokens 1024`, `--disable-prefix-cache`, `--max-request-tokens 262144`, `--max-kv-size 786432`, `--enable-auto-tool-choice`, `--tool-call-parser gemma4`, `--reasoning-parser gemma4`, `--default-chat-template-kwargs '{"enable_thinking":true}'`를 적용했고 `/health`, `/v1/models`, 직접 API non-stream/stream auto tool-call, streaming multi-turn tool-result final answer, Pi `-p` tool-call, Pi TUI 초기 프롬프트 tool-call 로그 종료를 확인했다.
|
||||
- Mac Studio vLLM-MLX의 위 값은 2026-07-08 기준 구동 가능한 최종 체크포인트다. 잔여 이슈로 Gemma4 thought channel delimiter가 최종 content에 누수될 수 있으며, 이 경우 runtime option 미세 조정보다 vLLM-MLX Gemma provider 전용 Pi extension/provider adapter sanitizer를 우선 검토한다. 추가 튜닝은 Spark vLLM 설정과 분리된 별도 실험으로만 수행한다.
|
||||
- 2026-07-08 재확인 기준 DGX Spark 01은 mac-mini 내부 endpoint `http://192.168.2.2:8002`에서 `/health` 200과 `/v1/models`, 직접 API forced/auto/streaming tool-call smoke, 로컬 Pi TUI bash/git-push tool-call 흐름을 통과했다. DGX Spark 02는 mac-mini 내부 endpoint `http://192.168.2.4:8004`에서 `/health` 200과 `/v1/models`, 직접 API auto/streaming tool-call smoke를 통과했다. Edge OpenAI-compatible capacity smoke는 Control Plane status snapshot 기준으로 재검증한다.
|
||||
- 2026-07-08 재확인 기준 DGX Spark 01은 mac-mini 내부 endpoint `http://192.168.2.2:8002`에서 `/health` 200과 `/v1/models`, 직접 API forced/auto/streaming tool-call smoke, 로컬 Pi TUI bash/git-push tool-call 흐름을 통과했다. DGX Spark 02는 mac-mini 내부 endpoint `http://192.168.2.4:8004`에서 `/health` 200과 `/v1/models`, 직접 API auto/streaming tool-call smoke를 통과했다. Edge OpenAI-compatible capacity smoke는 source ref `c2437aaedefbac4312d69dfd10aa017c2739e187` 재배포 후 `/v1/responses`, `/v1/chat/completions` 각각 15개 동시 요청으로 통과했다.
|
||||
- Gemma provider-pool `gemma4:26b`는 `default_thinking_token_budget: 1024` 기준으로 thinking을 기본 활성화한다. Edge strict output이 켜져 있어도 provider-pool catalog의 thinking policy가 우선하며, vLLM/vLLM-MLX adapter에는 `chat_template_kwargs.enable_thinking=true`로 전달되는지 확인한다.
|
||||
- Gemma provider를 Pi/Cline형 agent/tool-call 용도로 검증할 때는 일반 chat smoke와 별도로 forced tool call, auto tool call, streaming `delta.tool_calls`, multi-turn tool result 후 최종 답변을 확인한다. raw `<|tool_call>`/`<|"|>` marker나 thought channel text가 assistant content로 새면 provider parser/template profile 또는 Edge relay 경계 문제로 판정한다.
|
||||
- Gemma provider-pool의 IOP queue timeout은 두지 않는다. config 값은 `queue_timeout_ms=0`이며, caller context cancellation 또는 연결 종료로만 queued request를 중단한다. OpenAI run timeout과 backend request timeout은 long reasoning/long-context 요청을 위해 각각 `openai.timeout_sec=1800`, `request_timeout_ms=1800000`으로 둔다.
|
||||
|
||||
## 2026-07-02 dev-corp native runtime 상태
|
||||
## 2026-07-08 dev-corp native runtime 상태
|
||||
|
||||
- mac-mini checkout은 `5b1255a` 기준으로 clean sync/rebuild되었고, runtime 경로는 `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime`이다.
|
||||
- mac-mini checkout은 `c2437aaedefbac4312d69dfd10aa017c2739e187` 기준으로 clean sync/rebuild/redeploy되었고, runtime 경로는 `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime`이다.
|
||||
- Control Plane native runtime이 활성화되어 `18002` HTTP, `19004` Client WS, `19005` CP-Edge wire를 listen한다. Edge config의 `control_plane.enabled=true`, `wire_addr=127.0.0.1:19005`로 `dev-corp-edge`가 connected 상태다.
|
||||
- Edge native runtime은 `18085` bootstrap, `18086` OpenAI-compatible, `18087` Edge-Node TCP, `19094` refresh admin을 listen한다.
|
||||
- Mac Studio provider catalog `type`은 최신 config validator 기준으로 `openai_compat`를 사용한다. 실제 provider runtime은 vLLM-MLX이고 `runtime_type: vllm-mlx`로 추적한다.
|
||||
- `/v1/responses` capacity smoke 표준: 15개 동시 요청, Control Plane `provider_snapshots` peak total `in_flight=13`, `queued>=2`, provider별 `in_flight`가 DGX01 `4`, DGX02 `4`, Mac Studio `5`를 넘지 않고 완료 후 모두 `in_flight=0`, `queued=0`으로 회복해야 한다.
|
||||
- `/v1/chat/completions` capacity smoke 표준: 15개 동시 요청, Control Plane `provider_snapshots` peak total `in_flight=13`, `queued>=2`, provider별 `in_flight`가 DGX01 `4`, DGX02 `4`, Mac Studio `5`를 넘지 않고 완료 후 모두 `in_flight=0`, `queued=0`으로 회복해야 한다.
|
||||
- `/v1/responses` capacity smoke 표준: 15개 동시 요청, Control Plane `provider_snapshots` peak total `in_flight=13`, `queued>=2`, provider별 `in_flight`가 DGX01 `4`, DGX02 `4`, Mac Studio `5`를 넘지 않고 완료 후 모두 `in_flight=0`, `queued=0`으로 회복해야 한다. 2026-07-08 검증에서는 15/15 성공, peak total `in_flight=13`, `queued=6`, provider별 max queued `2`로 통과했다.
|
||||
- `/v1/chat/completions` capacity smoke 표준: 15개 동시 요청, Control Plane `provider_snapshots` peak total `in_flight=13`, `queued>=2`, provider별 `in_flight`가 DGX01 `4`, DGX02 `4`, Mac Studio `5`를 넘지 않고 완료 후 모두 `in_flight=0`, `queued=0`으로 회복해야 한다. 2026-07-08 검증에서는 15/15 성공, peak total `in_flight=13`, `queued=6`, provider별 max queued `2`로 통과했다.
|
||||
|
||||
## 명령
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ source:
|
|||
repo_root: /Users/fe/agent-work/iop-dev-corp
|
||||
setup_required: true
|
||||
setup_status: deployed
|
||||
current_observation: /Users/fe/agent-work/iop-dev-corp checkout and build/dev-corp-runtime runtime were created on 2026-06-25, clean-synced/rebuilt at source ref 2d08d24 on 2026-07-06, then validated with the provider-pool thinking-policy patch and gemma4:26b default_thinking_token_budget config update; /Users/fe/iop-field remains unrelated legacy field state
|
||||
current_observation: /Users/fe/agent-work/iop-dev-corp checkout and build/dev-corp-runtime runtime were created on 2026-06-25, clean-synced/rebuilt at source ref 2d08d24 on 2026-07-06, then clean-synced/rebuilt/redeployed at source ref c2437aa on 2026-07-08 with 15-concurrency capacity smoke passed for /v1/responses and /v1/chat/completions; /Users/fe/iop-field remains unrelated legacy field state
|
||||
clean_sync:
|
||||
- git fetch origin main
|
||||
- git reset --hard origin/main
|
||||
|
|
@ -58,7 +58,7 @@ model:
|
|||
alias_status: candidate
|
||||
alias_policy: expose one IOP model alias and map provider-specific served_model values per provider
|
||||
provider_capacity_total: 13
|
||||
provider_capacity_status: verified_with_control_plane_provider_snapshots_2026_07_06
|
||||
provider_capacity_status: verified_with_control_plane_provider_snapshots_2026_07_08_15_concurrency
|
||||
context_window_max: 262144
|
||||
default_thinking_token_budget: 1024
|
||||
reasoning_policy: bounded_thinking_enabled
|
||||
|
|
@ -105,7 +105,7 @@ model:
|
|||
- /v1/chat/completions
|
||||
concurrent_requests: 15
|
||||
expected_total_in_flight: 13
|
||||
expected_total_in_flight_status: standard_15_concurrency_pending_reverification
|
||||
expected_total_in_flight_status: verified_15_concurrency_2026_07_08
|
||||
expected_min_queued: 2
|
||||
previous_capacity_plus_one_concurrent_requests: 14
|
||||
previous_capacity_plus_one_expected_min_queued: 1
|
||||
|
|
@ -113,12 +113,20 @@ model:
|
|||
think_policy: enabled_for_provider_pool
|
||||
exact_output_match: false
|
||||
latest_capacity_verification:
|
||||
date: "2026-07-06"
|
||||
source_ref: 2d08d240d48a954df6847df2ba08fb8b39fc3f7d
|
||||
edge_runtime_patch: provider_pool_thinking_policy_enabled_under_strict_output
|
||||
date: "2026-07-08"
|
||||
source_ref: c2437aaedefbac4312d69dfd10aa017c2739e187
|
||||
edge_runtime_patch: docs_15_concurrency_standard_redeploy
|
||||
default_thinking_token_budget: 1024
|
||||
control_plane_enabled: true
|
||||
control_plane_status_url: http://127.0.0.1:18002/edges/dev-corp-edge/status
|
||||
runtime:
|
||||
runner_checkout: /Users/fe/agent-work/iop-dev-corp
|
||||
remote_log: build/dev-corp-runtime/logs/capacity_15_20260708_155027.json
|
||||
control_plane_pid: 1446
|
||||
edge_pid: 1481
|
||||
rebuild_time: "2026-07-08 15:48"
|
||||
post_build_config_check: passed
|
||||
post_build_refresh_dry_run: no_changes_detected
|
||||
provider_snapshot_baseline:
|
||||
total_capacity: 13
|
||||
providers:
|
||||
|
|
@ -135,40 +143,42 @@ model:
|
|||
health: healthy
|
||||
status: available
|
||||
responses:
|
||||
concurrent_requests: 14
|
||||
ok: 14
|
||||
concurrent_requests: 15
|
||||
ok: 15
|
||||
timeout_errors: 0
|
||||
http_errors: 0
|
||||
max_total_in_flight: 13
|
||||
max_total_queued: 3
|
||||
max_total_queued: 6
|
||||
elapsed_sec: 22.563
|
||||
provider_max:
|
||||
corp-dgx-spark-01-vllm:
|
||||
max_in_flight: 4
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
corp-dgx-spark-02-vllm:
|
||||
max_in_flight: 4
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
corp-mac-studio-mlx-vllm:
|
||||
max_in_flight: 5
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
final_recovery: in_flight_0_queued_0
|
||||
chat_completions:
|
||||
concurrent_requests: 14
|
||||
ok: 14
|
||||
concurrent_requests: 15
|
||||
ok: 15
|
||||
timeout_errors: 0
|
||||
http_errors: 0
|
||||
max_total_in_flight: 13
|
||||
max_total_queued: 3
|
||||
max_total_queued: 6
|
||||
elapsed_sec: 25.117
|
||||
provider_max:
|
||||
corp-dgx-spark-01-vllm:
|
||||
max_in_flight: 4
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
corp-dgx-spark-02-vllm:
|
||||
max_in_flight: 4
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
corp-mac-studio-mlx-vllm:
|
||||
max_in_flight: 5
|
||||
max_queued: 1
|
||||
max_queued: 2
|
||||
final_recovery: in_flight_0_queued_0
|
||||
latest_runtime_update:
|
||||
date: "2026-06-25"
|
||||
|
|
|
|||
|
|
@ -97,14 +97,14 @@ Mac Studio의 secondary `http://192.168.2.3:8005/v1` endpoint는 기본 Node/pro
|
|||
- Mac Studio vLLM-MLX의 위 값은 2026-07-08 기준 구동 가능한 최종 체크포인트다. 잔여 이슈로 Gemma4 thought channel delimiter가 최종 content에 누수될 수 있으며, 이 경우 runtime option 미세 조정보다 vLLM-MLX Gemma provider 전용 Pi extension/provider adapter sanitizer를 우선 검토한다. 추가 튜닝은 Spark vLLM 설정과 분리된 별도 실험으로만 수행한다.
|
||||
- Gemma provider를 Pi/Cline형 agent/tool-call 용도로 검증할 때는 일반 chat smoke와 별도로 forced tool call, auto tool call, streaming `delta.tool_calls`, multi-turn tool result 후 최종 답변을 확인한다. raw `<|tool_call>`/`<|"|>` marker나 thought channel text가 assistant content로 새면 provider parser/template profile 또는 Edge relay 경계 문제로 판정한다.
|
||||
- Gemma provider-pool의 provider queue timeout은 두지 않는다. config 값은 `queue_timeout_ms=0`이며, backend request timeout은 30분 기준인 `request_timeout_ms=1800000`으로 맞춘다.
|
||||
- 2026-07-08 재확인 기준 DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 API auto/streaming tool-call smoke를 통과했다. Edge OpenAI-compatible capacity smoke는 Control Plane status snapshot 기준으로 재검증한다.
|
||||
- 2026-07-08 재확인 기준 DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 API auto/streaming tool-call smoke를 통과했다. Edge OpenAI-compatible capacity smoke는 source ref `c2437aaedefbac4312d69dfd10aa017c2739e187` 재배포 후 `/v1/responses`, `/v1/chat/completions` 각각 15개 동시 요청으로 통과했다.
|
||||
|
||||
## 2026-07-02 연결/용량 검증 상태
|
||||
## 2026-07-08 연결/용량 검증 상태
|
||||
|
||||
- dev-corp Control Plane native runtime이 활성화되어 `http://127.0.0.1:18002/edges/dev-corp-edge/status`에서 3개 provider node가 connected로 관측된다.
|
||||
- DGX Spark 01, DGX Spark 02, Mac Studio Node binary는 source ref `5b1255a` 기준으로 재배포되었고 각 host의 `iop-dev-corp-field/iop-node`로 실행된다.
|
||||
- DGX Spark 01, DGX Spark 02, Mac Studio Node binary는 source ref `c2437aaedefbac4312d69dfd10aa017c2739e187` 기준으로 재배포되었고 각 host의 `iop-dev-corp-field/iop-node`로 실행된다.
|
||||
- Control Plane `provider_snapshots` 기준 provider 상태는 DGX01 capacity `4`, DGX02 capacity `4`, Mac Studio capacity `5`, 모두 `health=healthy`, `status=available`이다.
|
||||
- dev-corp capacity smoke 표준은 `/v1/responses`와 `/v1/chat/completions` 각각 15개 동시 요청이다. provider capacity 합 `13` 기준 peak total `in_flight=13`, `queued>=2`를 관측하고, 완료 후 모든 provider가 `in_flight=0`, `queued=0`으로 회복해야 한다.
|
||||
- dev-corp capacity smoke 표준은 `/v1/responses`와 `/v1/chat/completions` 각각 15개 동시 요청이다. provider capacity 합 `13` 기준 peak total `in_flight=13`, `queued>=2`를 관측하고, 완료 후 모든 provider가 `in_flight=0`, `queued=0`으로 회복해야 한다. 2026-07-08 검증에서는 두 endpoint 모두 15/15 성공, peak total `in_flight=13`, `queued=6`, provider별 max queued `2`, 최종 회복 `in_flight=0`, `queued=0`으로 통과했다.
|
||||
|
||||
## 명령
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue