掌握 Intel 13 代 i9 64GB RAM 上的 Proxmox VM 資源規劃、SPICE/NoMachine/SSH 遠端桌面選型、三種拓撲範本與 GPU 直通實作,打造高效 Agent 伺服器叢集。
硬體基線與主機預留
| 項目 | 規格 | 主機預留 | 可分配給 VM |
|---|---|---|---|
| CPU | Intel 第 13 代 i9(24 核心 / 32 執行緒,8P+16E) | 2–4 執行緒(建議保留 1–2 個 P-core) | 適度 overcommit 1.5–2× 實體執行緒 |
| 記憶體 | 64 GB DDR5 | 6–8 GB(Proxmox、ZFS ARC、系統服務) | 約 56–58 GB |
| 儲存 | NVMe SSD(建議多碟組 RAID/ZFS) | — | 依 VM 數量彈性切分 |
核心觀察:Agent 負載(Claude Code、雲端 API、數據管線)多為 I/O 與網路等待,非長時間佔滿 CPU,適合「多台中小型 VM」而非少數巨型 VM。
遠端桌面方案選型矩陣
| 方案 | 體驗等級 | 適用場景 | 關鍵依賴 |
|---|---|---|---|
| SPICE + virt-viewer | LAN 內日常桌面操作、官方整合度最高 | VM 內安裝 spice-vdagent,Display 設 SPICE,視解析度調高顯存 |
|
| NoMachine | 長時間 GUI 作業、跨平台客戶端需求 | Guest 安裝 Server,預設埠 4000 | |
| Sunshine + Moonlight | 有 GPU 直通或內顯可用時 | 無獨顯可試軟編,體驗取決於 CPU | |
| xrdp (Ubuntu 內建 RDP) | 過渡方案、Windows 客戶端為主 | 無 GPU 時備案 | |
| SSH + VS Code Remote-SSH | Claude Code、Agent API、腳本、數據分析 | 多數 Agent 工作其實不需要常駐桌面 |
建議策略:依用途分流
- 真正需要 GUI 的 VM:優先 SPICE → 不夠順再上 NoMachine → 有 GPU 時走 Sunshine/Moonlight。
- 以 CLI/API 為主的 Agent VM:直接用 Ubuntu Server + SSH + tmux + VS Code Remote-SSH,資源更省、體感通常比任何遠端桌面都快。
三種 VM 拓撲範本(64 GB 機型)
方案 A:平衡型(推薦多數人)
| VM 名稱 | OS | vCPU | RAM | 磁碟 | 用途 | 遠端方式 |
|---|---|---|---|---|---|---|
agent-prod-01 |
Ubuntu 22.04 Server | 6 | 12 GB | 80–120 GB | 主要 Agent / API 服務、常駐程序 | SSH + VS Code Remote |
agent-prod-02 |
Ubuntu 22.04 Server | 6 | 12 GB | 80–120 GB | 第二組 Agent、隔離環境/不同 API Key | SSH + VS Code Remote |
agent-dev-gui |
Ubuntu 22.04 Desktop | 6 | 12 GB | 100–150 GB | 瀏覽器、GUI 工具、視覺除錯 | SPICE 或 NoMachine |
sandbox |
Ubuntu 22.04 Server | 4 | 8 GB | 60–80 GB | 實驗、套件測試、易毀環境 | SSH |
ops-tools(可選) |
Ubuntu 22.04 Server | 2–4 | 4–6 GB | 40–60 GB | 監控、反向代理、備份腳本 | SSH |
資源合計:vCPU 約 24–28(可 overcommit)、RAM 約 48–50 GB → Host 仍留 14–16 GB 緩衝。
方案 B:偏多桌面(堅持多台 Desktop)
| VM | vCPU | RAM | 說明 |
|---|---|---|---|
| Desktop Agent × 3 | 各 4–6 | 各 10–12 GB | 各自獨立桌面與 Agent 堆疊 |
| Server 輕量 × 1–2 | 各 2–4 | 各 4–6 GB | 無頭服務、排程、代理 |
Desktop GUI 本身固定佔用 2–4 GB RAM/台;若實際工作多在 terminal,長期會浪費資源,建議把「純跑 Agent」的改成 Server。
方案 C:極簡高密度(最大並發 Agent)
全數 Ubuntu Server,4–8 台,每台 2–4 vCPU、4–8 GB RAM,全部 SSH/VS Code Remote。適合已確定幾乎不開 GUI、只做 API 與數據管線時。
CPU / 記憶體 / 儲存 / 網路 設計細節
CPU
- 啟用 host CPU type(或至少 x86-64-v2/v3),確認 BIOS 已開 VT-x、VT-d(若要 PCIe/GPU 直通)。
- 不要把單一 VM 設成「幾乎全部核心」;多 VM 平均分配較能平行跑多個 Agent session。
- 重要 VM 可在 Proxmox 調高 CPU Units(權重)或限制次要 VM 的 CPU Limit,避免實驗機拖垮生產 Agent。
- P-core / E-core:一般讓 Proxmox 自動排程即可;極在意延遲時可把「互動式 GUI VM」綁定較多 P-core(進階,非必須)。
記憶體
- Ballooning 可開,但生產 Agent VM 建議設合理
minimum,避免被過度回收。 - 單台 Desktop 實務下限約 8 GB,舒適區 10–12 GB(瀏覽器 + IDE + 若干 Node/Python 程序)。
- Server 型 Agent:4–8 GB 通常足夠(無本地 LLM 時)。
- 總開機 RAM 建議控制在 實體 RAM 的 85% 以內,避免 Host OOM 拖垮全部 VM。
儲存
- 系統碟:每台 40–80 GB 起;有大量日誌/資料集再加第二顆 virtual disk。
- 優先 VirtIO SCSI + Discard/SSD emulation;底層用 ZFS 時注意 RAM 會再被 ARC 使用(又一個 Host 預留 6–8 GB 的理由)。
- 共用資料:用 Proxmox bind mount、NFS/SMB,或單一
dataVM/CT 當 NAS,避免每台 VM 複製同一份大資料。
網路
- 預設 VirtIO 網卡即可。
- 建議:
vmbr0區網(遠端桌面、SSH),可選第二橋接或 firewall 區隔「對外 API 出口」與「管理網」。 - 只對需要的埠開放:SSH 22、SPICE/noVNC 由 Proxmox 代理、NoMachine 4000、RDP 3389 等。
Guest 內建議配置(Ubuntu 22.04)
所有 VM 通用
sudo apt update && sudo apt install -y qemu-guest-agent
# Proxmox 介面啟用 QEMU Guest Agent(關機、IP 顯示較可靠)
- 設定時區、NTP、自動安全更新策略(依是否 24/7 常駐調整)。
SPICE Desktop VM
- Proxmox:Display = SPICE,視解析度提高 Video Memory(如 256 MB)。
- Guest:
sudo apt install -y spice-vdagent sudo systemctl enable --now spice-vdagent - 客戶端用 virt-viewer (Remote Viewer) 開啟 Proxmox 下載的
.vv檔。
NoMachine(要更絲滑時)
- Guest 下載並安裝 NoMachine Server(官網
.deb)。 - 客戶端連
VM_IP:4000。 - 適合「長時間當第二台電腦用」的 Desktop VM。
Agent / Claude Code 類負載(Server VM)
- 優先 SSH +
tmux/screen(斷線不殺程序)。 - 本機用 VS Code Remote-SSH 直接編輯與跑終端,通常比遠端桌面更符合「無縫」需求。
- GUI 僅在需要瀏覽器或圖形工具時再開 Desktop 或按需啟動桌面環境。
一週內可落地的建置順序
- 安裝 Proxmox,更新,設定儲存(目錄或 ZFS)、橋接網路、備份(PBS 或遠端)。
- 建立 Ubuntu 22.04 Server 模板(cloud-init 更佳):guest agent、SSH key、基礎工具。
- 從模板 clone 出
agent-prod-01/02、sandbox,分配上表資源。 - 另建一台 Desktop,Display 設 SPICE,裝
spice-vdagent,用 virt-viewer 測操作手感。 - 若 SPICE 仍不夠順 → 同一台 Desktop 加裝 NoMachine 對比;有獨顯/可直通內顯再評估 Sunshine。
- 在 prod VM 部署 Agent 服務、API Key 用環境變數或 secret 檔、systemd 常駐。
- 設定 Proxmox 備份排程與 snapshot 策略(改系統前先 snap)。
資源分割一覽表(可直接當規劃表)
假設 可分配約 56 GB RAM、適度 CPU overcommit,推薦預設:
| 角色 | 數量 | 每台 vCPU | 每台 RAM | OS 形態 | 遠端 |
|---|---|---|---|---|---|
| 生產 Agent | 2 | 6 | 12 GB | Server | SSH / VS Code Remote |
| 開發/GUI | 1 | 6 | 12 GB | Desktop | SPICE → 必要時 NoMachine |
| 沙盒 | 1 | 4 | 8 GB | Server | SSH |
| 維運(可選) | 1 | 2–4 | 4–6 GB | Server | SSH |
| Host 預留 | — | 2–4 執行緒 | 6–8 GB+ | Proxmox | Web UI / SSH |
擴充原則:之後若某個 Agent 要跑更重的數據分析,優先 只加該 VM 的 RAM(+2–4 GB)或 vCPU(+2),不要一次把所有 VM 一起加大,以免 Host 被擠壓。
GPU Passthrough 評估與實作清單
何時需要 GPU 直通?
- VM 主要跑 Agent、Claude Code、API 呼叫與數據處理 → 未必需要,SSH + VS Code Remote 通常已足夠快。
- 真的需要在 Ubuntu Desktop VM 裡長時間操作瀏覽器、GUI 工具,或想要接近本機的互動感 → GPU Passthrough 才值得做。
- 建議優先把一台專門的 Desktop VM 做 GPU 直通,不要一開始就把所有 VM 都綁 GPU(一張卡通常對一台 VM)。
先決條件
- BIOS 啟用 VT-d / IOMMU,系統為 UEFI 模式。
- 主機決定是否保留一張顯卡自用;若只有一張 GPU 且直通給 VM,Proxmox 主機將失去顯示輸出。
實作步驟(Intel 平台)
- GRUB 參數:編輯
/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" # 視情況加上 video=efifb:off 關閉主機顯示輸出update-grub後重開機。 - 載入 VFIO 模組:
/etc/modules加入vfio vfio_iommu_type1 vfio_pci vfio_virqfd - 找出 GPU PCI ID:
lspci -nn | grep -i -e vga -e audio # 例:01:00.0 VGA [10de:1234], 01:00.1 Audio [10de:5678] - 綁定 vfio-pci:
/etc/modprobe.d/vfio.confoptions vfio-pci ids=10de:1234,10de:5678 disable_vga=1update-initramfs -u -k all後重開機,確認lspci -k顯示Kernel driver in use: vfio-pci。 - 建立 VM:
- 機型:q35,BIOS:OVMF (UEFI)
- 顯示裝置:可改為 None 或 VirtIO-GPU(不依賴傳統虛擬 VGA)
- 加入 PCI 裝置:勾選 PCI-Express、All Functions、Primary GPU(視需求)
- Guest 內安裝驅動:Ubuntu 內安裝對應 GPU 驅動(NVIDIA/AMD/Intel),確認
lspci、nvidia-smi等正常。
常見坑點
- IOMMU group 太大:GPU 與其他裝置綁在一起無法單獨直通 → 檢查主機板 BIOS 設定或換 PCIe 插槽。
- 主機搶載驅動:導致 vfio 接管失敗 → 黑名單顯卡驅動(
/etc/modprobe.d/blacklist.conf加入blacklist nouveau等)、更新 initramfs、重開機。 - ACS Override:部分教學建議加
pcie_acs_override=downstream,multifunction,可能降低穩定性,建議先用最小修改量嘗試。 - 直通後 Proxmox 內建 VNC/console 不再是主要操作方式,改用 SSH、RDP、SPICE 或 NoMachine 進入 VM。
設計原則總結
- 工作負載偏 CLI/API → 多數用 Server VM + SSH,比「全部 Desktop + 遠端桌面」更省、更快。
- 要 GUI 且要順 → 放棄依賴 noVNC;改 SPICE,再進階 NoMachine 或 GPU 串流。
- 64 GB 甜蜜點 → 2 個較實的生產 Agent + 1 個 GUI + 1 個沙盒,總 RAM 佔用約 45–50 GB,穩定度與彈性較佳。
- 隔離優於堆疊 → 不同 API 專案、不同風險的實驗分開 VM,炸一個 sandbox 不影響 prod。
- 先模板再批量 → 用同一 golden image clone,設定一致、還原快。
下一步:若你補充 實際 CPU 型號(如 13900K/13900T)、是否有獨顯、磁碟是 NVMe 單碟還是多碟、以及預計同時開幾個「要開桌面」的 session,可把上表收斂成一版「鎖定 vCPU/RAM 數字」的最終配置單。