qwen3.5-122B-A10B on DGX Spark: vLLM + DFlash + dense-bandwidth stack, one-shot installer
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Monitor SGLang container startup with an OOM auto-kill guard.
|
||||
# Breaks on: READY, ERROR (traceback), OOM-GUARD (avail mem too low), or timeout.
|
||||
set -u
|
||||
NAME="${1:-sglang-dflash}"
|
||||
MAX_ITERS="${2:-60}" # 60 * 20s = 20 min
|
||||
FLOOR_MB="${3:-4096}" # kill if available memory drops below this
|
||||
|
||||
for i in $(seq 1 "$MAX_ITERS"); do
|
||||
if ! docker ps --filter "name=$NAME" --format '{{.Names}}' | grep -q "$NAME"; then
|
||||
echo "STATE=EXITED iter=$i"
|
||||
echo "--- last log ---"; docker logs "$NAME" 2>&1 | tail -25
|
||||
exit 0
|
||||
fi
|
||||
AVAIL=$(free -m | awk '/^Mem:/{print $7}')
|
||||
if [ "$AVAIL" -lt "$FLOOR_MB" ]; then
|
||||
echo "STATE=OOM-GUARD iter=$i avail_mb=$AVAIL -> killing $NAME"
|
||||
docker kill "$NAME" >/dev/null 2>&1
|
||||
echo "--- last log ---"; docker logs "$NAME" 2>&1 | tail -25
|
||||
exit 0
|
||||
fi
|
||||
LOG=$(docker logs "$NAME" 2>&1)
|
||||
if echo "$LOG" | grep -qiE "server is fired up|Application startup complete|The server is ready"; then
|
||||
echo "STATE=READY iter=$i avail_mb=$AVAIL"
|
||||
echo "--- tail ---"; echo "$LOG" | tail -20
|
||||
exit 0
|
||||
fi
|
||||
if echo "$LOG" | grep -qE "Traceback \(most recent call last\)|CUDA out of memory|RuntimeError|AssertionError|ValueError|raise NotImplementedError"; then
|
||||
echo "STATE=ERROR iter=$i avail_mb=$AVAIL"
|
||||
echo "--- tail ---"; echo "$LOG" | tail -40
|
||||
exit 0
|
||||
fi
|
||||
LAST=$(echo "$LOG" | tail -1 | cut -c1-110)
|
||||
echo "iter=$i avail_mb=$AVAIL :: $LAST"
|
||||
sleep 20
|
||||
done
|
||||
echo "STATE=TIMEOUT after $MAX_ITERS iters"
|
||||
docker logs "$NAME" 2>&1 | tail -20
|
||||
Reference in New Issue
Block a user