
目前的機台:
Dell R630 (二手),CPU:E5-2680V4 x2,256G RAM。56個執行緒。目前跑:15個虛擬機,發出去的虛擬核心是 120 個。記憶體用約了 196G。


Dell R530 (二手),CPU:E5-2660V4 x2,256G RAM。56個執行緒。目前跑:20個虛擬機,發出去的虛擬核心是 122 個。記憶體用約了 199G。


AMD 5700X,8核心16執行緒、128 GB,發出去的虛擬核心是 56 個,目前跑:2個虛擬機,接 5060 16G X 2。

AMD 3700X,8核心16執行緒、80 GB,發出去的虛擬核心是 12 個,目前跑:1個虛擬機,接 5060 16G X 2。

AMD 主機板裝雙顯卡,主機板規格一定要注意 ,必須是可以 x8 x8,不要 16x1, 4x1,不然會把速度拉下來。
Dell 那兩台,跑一堆服務,vCPU 遠大於實際的 cpu 數量。就是虛擬機的好處,對於一台雙路老伺服器來說,這是常態。虛擬化把「閒置時間」重新分配。虛擬核心 vCPU 可以超發 -- 因為大部分機器大部分時間在發呆,排程器 scheduler 會把時間分給真正在動的那一台。但記憶體不一樣:給出去的就是給出去了,它不會因為閒置就還你。所以記憶體要多。另外,要開同頁去重 (KSM,Kernel Samepage Merging)。相同內容的記憶體頁只留一份。claude 查了一下,兩台 DELL 256G 的機器現在合計省下大約 47 GB(R530 省 28 GB、R630 省 19 GB)。另外,兩個伺服器共跑 35 個虛擬機,相當於35台PC。很划算。
AMD 5700X 及 AMD 3700X,都是接兩張 5060 16G,PCIe passthrough 直通給VM,提供地端 LLM服務用。這屬於測試機,但都已經持續開機一個月以上,其中 3700X 那台已經連續開了四個多月。因為以前有玩過礦機,知道這種高熱的多GPU,要維持24小時不間斷的跑,就是要 1. 加強散熱,2. 大的穩定電源供應器。其實,如果在沒有應用 LLM 模型時,GPU 是零工作,溫度維持在低溫 37~45度 左右,由於是測試,練習用,沒有對外,所以真正會用到長時間全速運轉的機會不多,比礦機輕鬆。目前只有一次,3700X 因為負責:OCR + RAG,我有100多本書,PDF 圖檔類型,要 OCR 入我的圖書館,然後進 RAG。這個就跑了將近五天。開始時有 bug,cluade 自我修正,然後一路到底,還順便將簡體轉為繁體中文。全程地端模型,只花自家電費,一個字:爽。
這裡說明一下,為什麼我用來做地端模型的,不直接裝os就好,還是放在虛擬機裡?原因很簡單:備份方便、修改方便、測試方便,而且,cpu 跟 ram 是足夠的,由於這台用的是ssd硬碟 ,速度很快,我還可以開其他測試的 VM。據說:vm 跟單一機器效能約差 10%,自己家用,可以接受。
幾個注意事項:
自動更新 automatic updates 的預設值對一般伺服器是應該的,但硬體直通的機器不是。有過這個情況:系統自動更新把顯示卡驅動升上去了,但沒有重開機。結果核心模組和使用者端函式庫版本對不上,舊的韌體檔案還被一起刪掉。所以現在跑模型用GPU的機器,我把所有顯示卡相關的套件全部鎖住,一共 27 個。要升可以,但規則是升完立刻重開,不准放著。
還有:建立虛擬機的對話框裡,網路卡的防火牆選項預設是開的。曾經裝一台 Windows ,安裝程式卡在「等待網路」整整七十分鐘。整個叢集的防火牆明明顯示停用,但那一層橋接 bridge 還是把封包丟掉了,因為還沒有為這台機器寫任何規則。診斷方式很單純,去看那張虛擬網卡的封包計數:
cat /sys/class/net/tap<虛擬機編號>i0/statistics/rx_packets。
收到 0、送出 1,那就是它——不是安裝程式的問題,網路卡的防火牆預設開啟。從那之後我建新機器的第一件事就是把那個選項關掉。
硬碟歸屬也是一樣。我把一整顆實體硬碟直通給某台虛擬機用。那顆碟在主機的儲存清單裡就必須維持停用狀態。虛擬機跑著的時候,主機這邊絕對不能把它重新啟用或掛起來。兩邊同時掛同一顆碟,檔案系統會壞給你看,而且不會有人先警告你。
那兩台AMD CPU的機器,它沒有獨立的遠端管理控制器 IPMI。也就是說系統掛掉之後,我沒辦法從網路上按它的電源鍵,只能走過去。這件事決定的不是效能,是「哪些服務可以放在這台」。真正不能停的東西,不該放在一台你只能靠雙腳去救的機器上。因為目前是測試及練習,就將就著用。順帶一提,這兩台開機時有個服務永遠失敗,查了才發現是遠端管理的驅動。硬體根本沒有,它每次都白試一次。停掉就好。
明天,先來建一台路由器:路由器本身也做成一台虛擬機。