「伺服器慢了,把記憶體翻倍吧」是託管領域最貴的條件反射。有時它是對的。但很多時候,機器其實在等磁碟,或者 CPU 已經滿載,新加的記憶體只是閒著,帳單卻翻了一倍。
所以在討論誰需要 64 GB 之前,先搞清楚您真正缺的是什麼。如果您只想看各類負載的典型記憶體數字,我們之前的指南 VPS 需要多少記憶體 裡都有,包括語言模型的計算公式。這篇講的是診斷:記憶體、磁碟還是 CPU。
三條指令,兩分鐘
在伺服器慢的時候執行它們,而不是凌晨四點什麼都沒發生的時候:
free -m
vmstat 1 10
cat /proc/pressure/cpu /proc/pressure/memory /proc/pressure/io
下面是不用翻教科書的讀法。
free -m。別看 free 這一列,Linux 會故意用磁碟快取填滿空閒記憶體。要看 available。如果一台 2 GB 的機器上只剩幾百 MB,而 swap 的 used 還在不斷增長,記憶體就很緊張了。
vmstat 1 10。四列就能說明大部分情況:
| 列 | 含義 | 指向 |
|---|---|---|
si / so | 每秒換入、換出 swap 的頁數 | 記憶體 |
wa | CPU 等待磁碟的時間佔比 | 磁碟 |
us + sy | CPU 在幹活的時間佔比 | CPU |
st | 虛擬化層把您的 CPU 分給別人的時間佔比 | CPU(vCPU 與他人分時使用) |
si/so 偶爾出現幾個非零值很正常。真正的訊號是每一秒都在持續 swap。
/proc/pressure/*。三者中最誠實的一個。每個檔案顯示任務因等待該資源而停滯的時間比例。memory 裡的 some avg60=25.00 表示過去一分鐘裡,有四分之一的時間某些任務在等記憶體。三個檔案裡哪個數字最大,哪個就是您的瓶頸。
如果是磁碟
wa 高、io 壓力高、swap 很少。常見原因是資料庫或者記錄很多的應用讀取的資料超過了快取能裝下的量。
轉折來了:加記憶體可能真能解決,因為 Linux 能快取更多磁碟內容。如果您的資料庫有 6 GB,熱資料佔 3 GB,把記憶體從 2 GB 加到 8 GB,磁碟問題可能就消失了。但如果資料庫有 300 GB,每次查詢碰到的都是不同部分,再合理的記憶體也快取不下。這時要靠更好的索引、更小的查詢或者換一種資料佈局。這裡所有方案都跑在 NVMe 上,所以慢的很少是磁碟本身,通常是存取方式。
如果是 CPU
us+sy 高、cpu 有壓力、沒有 swap、幾乎不等磁碟。壓縮、編譯、影片編碼、圖片處理、加密計算。加記憶體完全沒用。
也要留意 st。在 VPS 上,一個 vCPU 是一個物理核心的部分時間,而不是整個核心:方案裡的數字是短時突發的上限,長時間滿載可能會被限流,以保證機器上所有人公平使用。如果您的任務需要所有核心連續幾個小時跑滿 100%,那是任務本身的問題。我們寧願現在就說清楚,而不是等您買了更大的方案之後。
如果真是記憶體
持續 swap、記憶體壓力上升、dmesg 裡出現 OOM killer。現在的問題是:要多少。
2 GB 就夠、而且往往能撐好幾年的: 一個或幾個機器人、一個小 API、一個 VPN、一個 Nginx 後面的靜態站點、幾個 cron 爬蟲、一個監控代理。Micro 提供 2 vCPU、2 GB 記憶體和 25 GB 磁碟,NAT 版每月 5 美元,帶獨立 IPv4 的每月 10 美元。
4–8 GB 是舒適的中間檔: 一個 Web 應用加它的資料庫、一個小型搜尋索引、無頭瀏覽器自動化、兩三個並排執行的代理。
32–64 GB 留給必須常駐記憶體的資料:
- 工作集有幾十 GB 的資料庫,讓快取真正裝得下熱資料;
- 大型記憶體快取或佇列,一旦落到磁碟就會拖慢一切;
- 在數百萬個文字片段上檢索的向量索引(真實數字見 大規模自建 RAG);
- 在 CPU 上推理中等規模的語言模型,模型權重必須能裝進記憶體;
- 合併部署:把原來分散在十台小伺服器上的十個服務放到一台機器上。
Pro-64 就是為這些場景準備的:12 vCPU、64 GB 記憶體、600 GB NVMe 和一個獨立 IPv4,每月 70 美元。中間檔有每月 40 美元的 Pro-32 和 55 美元的 Pro-48;更高一檔是 90 美元的 Pro-80。所有 Pro 方案 都在歐盟執行。
大機器不合適的情況
有三種情況,即使您負擔得起,64 GB 也是錯誤答案。
GPU 任務。這些方案都沒有 GPU。如果您的模型訓練或快速推理需要 GPU,記憶體很大的 CPU 機器也能跑,但很慢,您是在為耐心付費。
長時間滿載 CPU 的任務。前面說過:vCPU 是突發容量。十二個 vCPU 全天候跑滿 100%,並不是 VPS 的設計用途。
還有「以防萬一」。如果三條指令都沒有顯示記憶體壓力,多出來的 60 GB 只是在快取您根本不讀的檔案。從小一點開始。升級到同一網路型別的更大方案,會原地增加 vCPU、記憶體和磁碟,只需重新啟動一次,詳見 更換方案。原地降配是不行的,所以買大了是有實際代價的:想縮小就得遷移到新伺服器,而 不停機遷移 VPS 是一件您最好不用去做的苦差事。
如果您在比較不同服務供應商的方案,如何看懂 VPS 規格 會講清楚 vCPU、磁碟和埠這些數字到底承諾了什麼。
評論
目前還沒有評論。歡迎成為第一位。