12 KiB
| name | description | version | tags | trigger_conditions | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gpu-server-services | Complete map of GPU server services on opencomputing.net — ports, nginx routing, systemd units, and operational commands. | 1.0.0 |
|
|
GPU Server Services — opencomputing.net
Server Overview
- Host: opencomputing.net (ymq@, passwordless SSH + sudo)
- GPU: 8×RTX4090 24GB
- Entry: nginx :10443 with SNI domain routing
- Infra: Redis :6379, MySQL :3306
- Disk: 664GB usable under /data/ymq/
Service Map (by port)
Currently Running (July 2026)
| Port | Service | Dir | Python Env | Model Path | Git Repo | Notes |
|---|---|---|---|---|---|---|
| 8886 | VDB向量库 | /data/ymq/vdb | wan22-service/py3 | /data/ymq/vdb/db/milvus.db | yumoqing/vdb | Milvus via ahserver. upsert/search/delete. Sole VDB — 8887 removed |
| 9080 | KTV媒体服务 | /data/ymq/media-server | vllm-0.8.5 | /data/ymq/models/MahmoudAshraf/mms-300m-1130-forced-aligner (字幕对齐) + LLM(API,字幕校准) | yumoqing/media-server | Central media hub, systemd. Routes: /subtitle/ /calibrate/ /merge-video/ /ktv/ |
| 9081 | 歌曲评分 | /data/ymq/songrate-service | wan22-service/py3 | 评分模型(内置) | yumoqing/songrate-service | KTV quality scoring |
| 9082 | Real-ESRGAN超分 | /data/ymq/realesrgan-service | wan22-service/py3 | /data/ymq/models/RealESRGAN_x2plus.pth | yumoqing/realesrgan-service | 3 workers |
| 9083 | Demucs音源分离 | /data/ymq/demucs-service | wan22-service/py3 | /data/ymq/.cache/torch/hub/checkpoints/955717e8-8726e21a.th | yumoqing/demucs-service | 4 workers |
| 9084 | KTV合成 | /data/ymq/ktv-synth-service | wan22-service/py3 | 无ML模型(纯ffmpeg) | yumoqing/ktv-synth-service | ffmpeg视频拼接+音频混流 |
| 9085 | RVC声音转换 | /data/ymq/rvc-service | venv | /data/ymq/rvc-models/ | RVC-Project/RVC-WebUI | Voice cloning |
| 9086 | CLIP向量化 | /data/ymq/clip_embedding | vllm-0.8.5 | /data/ymq/models/laion/CLIP-ViT-H-14-laion2B-s32B-b79K | yumoqing/clip_embedding | /api/embed |
| 9087 | 声纹Embedding | /share/ymq/run/voiceprint | 内置venv | /share/models/ecapa-tdnn | yumoqing/voiceprint | ECAPA-TDNN, GPU1, extract/verify submit+status. Replaced T2T on this port |
| 9090 | Reranker重排 | /data/ymq/bge-reranker | vllm-0.8.5 | /data/ymq/models/BAAI/bge-reranker-v2-m3 | yumoqing/bge-reranker | /api/rerank |
| 9091 | 人脸服务 | /data/ymq/face-service | wan22-service/py3 | /data/ymq/.insightface/models/buffalo_l | yumoqing/face-service | InsightFace buffalo_l |
| 9092 | 图数据库 | /data/ymq/graph-service | wan22-service/py3 | Neo4j内嵌(内存图) | yumoqing/graph-service | graph CRUD |
| 9093 | NER实体识别 | /data/ymq/ner-service | venv | /data/ymq/models/gliner-multitask-large-v0.5 | yumoqing/ner-service | GLiNER multilingual |
| 9908 | 视频评估 | /data/ymq/video-eval | vllm-0.8.5 | PSNR/SSIM/VMAF | yumoqing/video-eval | systemd |
| 9925 | FastWhisper ASR | /data/ymq/asr-service | aligner/py3 | /data/ymq/models/deepdml/faster-whisper-large-v3-turbo-ct2 | yumoqing/asr-service | GPU 6 |
| 9926 | VibeVoice ASR | /share/ymq/run/vibevoice-asr | vllm-0.8.5 | /share/models/VibeVoice-ASR-7B | yumoqing/vibevoice-asr | 7B BF16, GPU 0, 人声分离 |
| 9997 | Reranker模型层 | /share/run/reranker | vllm-0.8.5 | /share/models/BAAI/bge-reranker-v2-m3 | — | Qwen3-Reranker-0.6B raw |
| 11434 | Ollama | systemd | system | Ollama模型目录 | — | LLM server |
Shared Python environments: /data/ymq/wan22-service (yumoqing/wan22-service) and /data/ymq/aligner (yumoqing/aligner).
Currently Down
| Port | Service | Notes |
|---|---|---|
| 9991 | 三元组抽取 | nginx config exists, no process |
| 9994 | FastVLM | nginx config exists, no process |
| 9995 | TTS语音合成 | nginx config exists, no process |
| 9087 | T2T文本生成 | nginx config removed — port taken by voiceprint |
| 8887 | VDB旧实例 | Removed — systemctl disabled, process killed, nginx cleaned — 8886 sole VDB |
| 9089-9106 | vLLM qwen3 | 18 instances all down |
Systemd Units
All under /etc/systemd/system/:
embedding.service — Qwen3-Embedding-0.6B, WorkDir /share/run/embeddings
reranker.service — Qwen3-Reranker-0.6B, WorkDir /share/run/reranker
entities.service — WorkDir /share/run/entities
triples.service — WorkDir /share/run/triples (Type=forking)
milvus.service — WorkDir /share/run/milvus (Type=forking, TimeoutStartSec=300)
neo4j.service — Failed (exit code 1)
vdb.service — Failed, disabled
clip.service — Inactive (killed TERM)
rag.service — Inactive (dead)
qwen3.service — vLLM (from /share/run/qwen3)
qwen3coder.service
gemma4.service
fvlm.service
fastwhisper.service — Auto-restart loop, fails with exit code 2
nvidia-asr.service
ollama.service — Active
media-server.service — Active (only service confirmed running)
aligner.service
comfyui.service
m2m.service
subtitler.service
songrate.service
f5tts.service
video-eval.service
connection.service
Nginx Routing (all on :10443)
Nginx uses SNI-based virtual hosts. Each <name>.opencomputing.net maps to a backend.
Standalone Domain Services
| Domain | Backend | Notes |
|---|---|---|
vectordb.opencomputing.net |
localhost:8886 | Sole VDB — /milvus/ route removed, all traffic → 8886 |
embedding.opencomputing.net |
localhost:9086 | CLIP ViT-H-14 |
reranker.opencomputing.net |
localhost:9090 | BGE reranker |
graphdb.opencomputing.net |
localhost:9092 | Neo4j graph |
entities.opencomputing.net |
localhost:9093 | GLiNER NER |
ktv.opencomputing.net |
localhost:9080 + sub-paths | KTV media hub |
ollama.opencomputing.net |
localhost:11434 | Ollama LLM |
evaluate.opencomputing.net |
localhost:9908 | Video eval |
media.opencomputing.net — Consolidated Media Services
ALL media/KTV services are routed under sub-paths of media.opencomputing.net:
| Sub-path | Port | Service |
|---|---|---|
/face/ |
9091 | 人脸服务 |
/asr/ |
9925 | FastWhisper ASR |
/vibevoice/ |
9926 | VibeVoice人声ASR |
/voiceprint/ |
9087 | 声纹Embedding |
/demucs/ |
9083 | Demucs音源分离 |
/realesrgan/ |
9082 | Real-ESRGAN超分 |
/synth/ |
9084 | KTV合成 |
/rvc/ |
9085 | RVC声音转换 |
/songrate/ |
9081 | 歌曲评分 |
/video-eval/ |
9908 | 视频评估 |
Removed
t2t.opencomputing.net— nginx config deleted, port 9087 taken by voiceprint
RAG Pipeline Architecture
Source: ~/rag-pipeline/. NOT running as a service — code only.
Pipeline flow (defined in pipeline.py):
ingest: chunk → embed(CLIP :9086) → store(VDB :8886) → extract entities(LLM) → store(Graph :9092)
search: embed query → hybrid retrieve(vector+graph RRF) → rerank(BGE :9090) → generate(LLM)
Plugin registry (~/rag-pipeline/plugins/registry.py):
- embedding: CLIP ViT-H-14 (dim=1024), BGE-M3 (not deployed)
- vdb: Milvus Lite (8886), Qdrant (not deployed)
- graph: NetworkX (9092), FalkorDB (blocked)
- reranker: BGE Reranker v2-m3 (9090)
- face: InsightFace buffalo_l (dim=512, 9091)
- chunker: recursive, sentence
- retriever: hybrid (vector+graph+RRF), vector_only
API endpoints (port 9093 in code, but ner-service occupies this port):
/api/status,/api/ingest,/api/search,/api/pipelines,/api/plugins
Quick Diagnostics
Full inventory spreadsheet: ~/GPU_Services.xlsx (24 services, 20 running, 4 stopped — generated from ssh ymq@opencomputing.net). Columns: 端口, Base URL, 服务名称, 系统服务名, 运行路径, Python环境, 远端仓库, 模型路径(本地), API说明, 服务功能说明, 状态. All model paths are local absolute filesystem paths.
# Which services are running right now
ssh ymq@opencomputing.net "sudo systemctl list-units --type=service --state=running"
# All listening ports and their processes
ssh ymq@opencomputing.net "ss -tlnp | grep LISTEN"
# GPU memory usage
ssh ymq@opencomputing.net "nvidia-smi --query-gpu=index,memory.used,memory.total --format=csv,noheader"
# Check a specific service
ssh ymq@opencomputing.net "curl -s http://localhost:9091/api/status"
Pitfalls
External access requires :10443 — port 443 times out
nginx exposes ONLY :10443 for external traffic (SNI-routed vhosts). Plain HTTPS (port 443) to any *.opencomputing.net service hangs until timeout (curl HTTP 000). Every client — DSPY ingestion code, scripts, tests — must use https://<svc>.opencomputing.net:10443/.... Audit with grep -n 'opencomputing.net' <files> | grep -v ':10443' (must return nothing). A bare except: pass around such calls hides the timeout completely — the classic symptom is downstream data silently missing (e.g. RAG chunks with empty vector_id). Some admin endpoints (e.g. VDB /v1/listcollections) may additionally 403 from non-whitelisted client IPs; call from rag.opencomputing.cn or the GPU server itself when that happens.
Port 9093 conflict
ner-service (GLiNER FastAPI) occupies port 9093, but rag-pipeline's code also assumes port 9093. If rag-pipeline is deployed, pick a different port or consolidate.
Model path mismatch for ner-service
GLiNER model expected at /mnt/disk0/yumoqing/models/gliner-multitask-large-v0.5 — this path does not exist. Model needs to be downloaded or symlinked to the actual model location under /data/ymq/models/.
Voiceprint (9087) POST returns 405 / multipart uploads fail
Symptoms: curl -X POST http://localhost:9087/extract/submit -F 'file=@audio.wav' returns 405 Method Not Allowed with Allow: GET,HEAD, OR returns {"error": "audio_file required", "kw": []} (params_kw empty).
Root causes (two separate issues):
-
_allowed_methodsnot updated: aiohttpStaticResource.__init__sets_allowed_methods = set(self._routes).ProcessorResource.__init__updates_routesbut not_allowed_methods. The dispatcher seesAllow: GET,HEAD. Fix: addself._allowed_methods = set(self._routes.keys())after the last_routes.update(). -
get_session_userinfocrashes: When auth middleware isn't installed,auth.get_auth(request)raisesRuntimeError('auth_middleware not installed'). This crashesgetPostDataduring multipart processing, so file uploads aren't saved toparams_kw. Fix: wrap in try/except inauth_api.py.
See references/ecapa-tdnn-voiceprint.md for complete fix + recovery steps.
Voiceprint startup: nohup ... & hangs SSH
On the GPU server, nohup cmd & or setsid cmd & hangs the SSH connection. Use ssh -f ymq@opencomputing.net "cd /share/ymq/run/voiceprint && PYTHONPATH=... python3 ah.py -p 9087 >> logs/voiceprint.log 2>&1" instead.
fastwhisper.service is in activating (auto-restart) with exit code 2. Its ExecStart points to /d/ymq/run/fastwhisper/py3/bin/python ah.py — but the home directory is /data/ymq, not /d/ymq. This path mismatch is likely the cause.
vLLM instances all down
Ports 9089-9106 are all unresponsive. The t2t nginx upstream still lists them. Start with the skill vllm-multi-instance-gpu for the correct startup procedure — critical to also kill orphan VLLM::EngineCore processes first.
Many services use /share/run/ not ~/
embedding, reranker, entities, triples, milvus, qwen3, qwen3coder all have their working directories under /share/run/ with start.sh/stop.sh scripts. The ~/ directories contain the same service types but as ahserver-based implementations — these may be newer replacements for the /share/run/ versions.