Proxmox Ubuntu VM 資源分割與遠端桌面設計完整指南

掌握 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 :star::star::star::star: 優於 VNC,支援動態解析度、剪貼簿、音訊、USB 轉發 LAN 內日常桌面操作、官方整合度最高 VM 內安裝 spice-vdagent,Display 設 SPICE,視解析度調高顯存
NoMachine :star::star::star::star::star: 區網常被評價為「接近本機」、延遲感極低 長時間 GUI 作業、跨平台客戶端需求 Guest 安裝 Server,預設埠 4000
Sunshine + Moonlight :star::star::star::star::star: 串流級低延遲(硬體編碼時最佳) 有 GPU 直通或內顯可用時 無獨顯可試軟編,體驗取決於 CPU
xrdp (Ubuntu 內建 RDP) :star::star::star: 中等、設定簡單 過渡方案、Windows 客戶端為主 無 GPU 時備案
SSH + VS Code Remote-SSH :star::star::star::star::star: 文字介面近乎零延遲 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 無頭服務、排程、代理

:warning: 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,或單一 data VM/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

  1. Proxmox:Display = SPICE,視解析度提高 Video Memory(如 256 MB)。
  2. Guest:
    sudo apt install -y spice-vdagent
    sudo systemctl enable --now spice-vdagent
    
  3. 客戶端用 virt-viewer (Remote Viewer) 開啟 Proxmox 下載的 .vv 檔。

NoMachine(要更絲滑時)

  1. Guest 下載並安裝 NoMachine Server(官網 .deb)。
  2. 客戶端連 VM_IP:4000
  3. 適合「長時間當第二台電腦用」的 Desktop VM。

Agent / Claude Code 類負載(Server VM)

  • 優先 SSH + tmux/screen(斷線不殺程序)。
  • 本機用 VS Code Remote-SSH 直接編輯與跑終端,通常比遠端桌面更符合「無縫」需求。
  • GUI 僅在需要瀏覽器或圖形工具時再開 Desktop 或按需啟動桌面環境。

一週內可落地的建置順序

  1. 安裝 Proxmox,更新,設定儲存(目錄或 ZFS)、橋接網路、備份(PBS 或遠端)。
  2. 建立 Ubuntu 22.04 Server 模板(cloud-init 更佳):guest agent、SSH key、基礎工具。
  3. 從模板 clone 出 agent-prod-01/02sandbox,分配上表資源。
  4. 另建一台 Desktop,Display 設 SPICE,裝 spice-vdagent,用 virt-viewer 測操作手感。
  5. 若 SPICE 仍不夠順 → 同一台 Desktop 加裝 NoMachine 對比;有獨顯/可直通內顯再評估 Sunshine。
  6. 在 prod VM 部署 Agent 服務、API Key 用環境變數或 secret 檔、systemd 常駐。
  7. 設定 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)。

先決條件

  1. BIOS 啟用 VT-d / IOMMU,系統為 UEFI 模式。
  2. 主機決定是否保留一張顯卡自用;若只有一張 GPU 且直通給 VM,Proxmox 主機將失去顯示輸出。

實作步驟(Intel 平台)

  1. GRUB 參數:編輯 /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
    # 視情況加上 video=efifb:off 關閉主機顯示輸出
    
    update-grub 後重開機。
  2. 載入 VFIO 模組/etc/modules 加入
    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    
  3. 找出 GPU PCI ID
    lspci -nn | grep -i -e vga -e audio
    # 例:01:00.0 VGA [10de:1234], 01:00.1 Audio [10de:5678]
    
  4. 綁定 vfio-pci/etc/modprobe.d/vfio.conf
    options vfio-pci ids=10de:1234,10de:5678 disable_vga=1
    
    update-initramfs -u -k all 後重開機,確認 lspci -k 顯示 Kernel driver in use: vfio-pci
  5. 建立 VM
    • 機型:q35,BIOS:OVMF (UEFI)
    • 顯示裝置:可改為 NoneVirtIO-GPU(不依賴傳統虛擬 VGA)
    • 加入 PCI 裝置:勾選 PCI-ExpressAll FunctionsPrimary GPU(視需求)
  6. Guest 內安裝驅動:Ubuntu 內安裝對應 GPU 驅動(NVIDIA/AMD/Intel),確認 lspcinvidia-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。

設計原則總結

  1. 工作負載偏 CLI/API → 多數用 Server VM + SSH,比「全部 Desktop + 遠端桌面」更省、更快。
  2. 要 GUI 且要順 → 放棄依賴 noVNC;改 SPICE,再進階 NoMachineGPU 串流
  3. 64 GB 甜蜜點 → 2 個較實的生產 Agent + 1 個 GUI + 1 個沙盒,總 RAM 佔用約 45–50 GB,穩定度與彈性較佳。
  4. 隔離優於堆疊 → 不同 API 專案、不同風險的實驗分開 VM,炸一個 sandbox 不影響 prod。
  5. 先模板再批量 → 用同一 golden image clone,設定一致、還原快。

下一步:若你補充 實際 CPU 型號(如 13900K/13900T)、是否有獨顯、磁碟是 NVMe 單碟還是多碟、以及預計同時開幾個「要開桌面」的 session,可把上表收斂成一版「鎖定 vCPU/RAM 數字」的最終配置單。