大多數人選記憶體靠猜。要麼「以防萬一」買得太多,要麼凌晨 3 點才認識 OOM killer。其實記憶體是最容易選型的資源之一,因為只要知道大致數字,各種負載都是可預測的。下面就是這些數字,從跑機器人的 1 GB 小機,一直到想在本機跑大模型的人會去找的 64 GB 伺服器。
按用途的大致數字
這些是典型設定在穩定狀態下的實測值,不是廠商給出的最低要求。
| 用途 | 實際佔用記憶體 | 合適的方案 |
|---|---|---|
| Telegram/Discord 機器人(Python、Node.js) | 100–300 MB | Nano 1 GB |
| 靜態網站 + Caddy/Nginx | 50–150 MB | Nano 1 GB |
| WordPress + MariaDB,正常流量 | 0.8–1.5 GB | Micro-IP 2 GB |
| 小型應用的 PostgreSQL | 0.5–2 GB(由您透過 shared_buffers 決定) | Micro / Small |
| 帶幾個工作流的 n8n | 0.5–1.5 GB | Micro 2 GB |
| 執行 5–10 個小服務的 Docker 主機 | 2–4 GB | Small 4 GB |
| Coolify + 建置 + 一個資料庫 | 3–4 GB | Small-IP 4 GB |
| 7–8B 大模型,4 位,CPU 推理 | 5–6 GB | Medium 6 GB |
| 14B 大模型,4 位 | 約 10 GB | Pro-32 |
| 32B 大模型,4 位 | 約 20 GB | Pro-32 |
| 70B 大模型,4 位 | 約 40–45 GB | Pro-48 / Pro-64 |
有兩點值得注意。第一,「普通」負載和大模型之間的差距巨大:一個機器人和一個 70B 模型相差兩百倍。第二,大多數服務在 1–4 GB 上就能跑得很好;人們之所以買多,是因為按一個很少到來的未來去選設定。
大模型的估算公式
語言模型有個簡單的估算方法:參數量 × 每個權重的位數 ÷ 8,再加上額外開銷。一個約 4.5 位(典型的 Q4 量化)的 8B 模型,權重為 8 × 4.5 ÷ 8 ≈ 4.5 GB。再加 1–2 GB 給上下文視窗(KV 快取會隨上下文長度增長)和執行時,就是 5–6 GB。
說句實話:在只有 CPU 的伺服器上,記憶體只是問題的一半。幾個 vCPU 跑 7–8B 模型大約每秒幾個 token,70B 大約每秒一個 token。這對批處理任務、後台代理和私人實驗來說夠用;但不是能供很多人同時聊天的體驗。如果您主要呼叫託管的模型 API,代理需要的資源會少得多:參見為 AI 代理選擇 VPS 設定。
別猜,去測
如果您已經有伺服器,數字就擺在那裡:
free -h # look at "available", not "free"
ps aux --sort=-rss | head -n 8 # the biggest processes, by resident memory
docker stats --no-stream # per-container usage
Linux 會把空閒記憶體用作磁碟快取,所以 「free」 總是很小,這很正常。真正重要的是 available:核心此刻能分給程式的記憶體。如果在最忙的時段 available 仍保持在約 25% 以上,說明設定合適。如果它經常降到零、swap 不斷增長,就該升級了。
也檢查一下過去是否發生過 OOM 殺程式:
journalctl -k | grep -i "out of memory"
swap 是安全帶,不是發動機
在小伺服器上配一個 1–2 GB 的 swap 檔案 是一份便宜的保險:一次短暫需要更多記憶體的包更新或 Docker 建置能活下來,而不是被殺掉。但如果某個服務住在 swap 裡,每個請求都要等磁碟。swap 是給峰值用的。持續使用 swap 說明您需要更高一檔的方案。
那麼到底該買多少?
- 1 GB:一個機器人、一個小 API、一個靜態網站。
- 2 GB:任何帶資料庫或 Docker 的服務的合理預設值。
- 4–6 GB:一台機器上多個服務、在伺服器上建置、一個小型本機模型。
- 32–64 GB:只有當某個大東西必須常駐記憶體時:超過 14B 的本機模型、大型 RAG 索引、一批代理。這正是大記憶體方案的用途。
先選比直覺小一檔的設定,觀察 free -h 一週,數字說需要再升級。在 EQVPS 升級方案會保留您的資料,只按比例收取差價(方案變更如何運作)。
評論
目前還沒有評論。歡迎成為第一位。