Files
2026-07-13 12:24:33 +08:00

79 lines
2.5 KiB
Bash

#!/bin/bash
# Start LMCache MP server + vLLM with OTLP tracing enabled.
#
# Overridable env vars:
# MODEL model path
# GPU CUDA device id (default: 0)
# VLLM_PORT vLLM serve port (default: 8100)
# LMCACHE_MP_PORT LMCache server port (default: 6567)
# MAX_MODEL_LEN (default: 131072)
# GPU_MEM_UTIL (default: 0.5)
# TENSOR_PARALLEL (default: 1)
# OTLP_ENDPOINT OTel collector gRPC (default: http://localhost:4320)
set -euo pipefail
BGPIDS=()
cleanup() {
echo "Shutting down..."
for pid in "${BGPIDS[@]}"; do kill "$pid" 2>/dev/null; done
wait 2>/dev/null
}
trap cleanup INT TERM EXIT
MODEL="${MODEL:-/.cache/huggingface/hub/model}"
GPU="${GPU:-0}"
VLLM_PORT="${VLLM_PORT:-8100}"
LMCACHE_MP_PORT="${LMCACHE_MP_PORT:-6567}"
TENSOR_PARALLEL="${TENSOR_PARALLEL:-1}"
MAX_MODEL_LEN="${MAX_MODEL_LEN:-131072}"
GPU_MEM_UTIL="${GPU_MEM_UTIL:-0.5}"
OTLP_ENDPOINT="${OTLP_ENDPOINT:-http://localhost:4320}"
echo "=== LMCache + vLLM with OTLP tracing ==="
echo " Model: ${MODEL}"
echo " GPU: ${GPU} vLLM port: ${VLLM_PORT}"
echo " LMCache port: ${LMCACHE_MP_PORT}"
echo " OTLP endpoint: ${OTLP_ENDPOINT}"
# ---------------------------------------------------------------------------
# 1. LMCache server
# ---------------------------------------------------------------------------
OTEL_SERVICE_NAME=lmcache \
lmcache server \
--port "${LMCACHE_MP_PORT}" \
--l1-size 20 \
--eviction-policy LRU \
--chunk-size 256 \
--otlp-endpoint "${OTLP_ENDPOINT}" \
--enable-tracing \
2>&1 | sed 's/^/[lmcache] /' &
BGPIDS+=($!)
sleep 5
# ---------------------------------------------------------------------------
# 2. vLLM
# ---------------------------------------------------------------------------
CUDA_VISIBLE_DEVICES="${GPU}" \
vllm serve "${MODEL}" \
--trust-remote-code \
--tensor-parallel-size "${TENSOR_PARALLEL}" \
--enforce-eager \
--max-model-len "${MAX_MODEL_LEN}" \
--port "${VLLM_PORT}" \
--gpu-memory-utilization "${GPU_MEM_UTIL}" \
--no-enable-prefix-caching \
--kv-transfer-config \
"{\"kv_connector\":\"LMCacheMPConnector\",\"kv_role\":\"kv_both\",\"kv_connector_extra_config\":{\"lmcache.mp.port\":${LMCACHE_MP_PORT}}}" \
2>&1 | sed 's/^/[vllm] /' &
BGPIDS+=($!)
echo ""
echo "=== Ready ==="
echo " vLLM: http://localhost:${VLLM_PORT}"
echo " Grafana: http://localhost:3000"
echo " Press Ctrl+C to shut down."
wait