把兩個 VPS 方案並排放在一起,設定行常常看起來一模一樣:4 vCPU、8 GB 記憶體、NVMe、1 Gbit/s、不限流量。然後其中一個把您的應用跑得很順,另一個每天晚上都卡頓。設定行並沒有撒謊,準確地說,它只是省略了真正重要的那部分。
本文講的是在 VPS 這一類裡比較方案。如果您還在猶豫 VPS 是否是合適的主機型別,請先看 VPS、共享主機、獨立伺服器還是雲。
vCPU:上限,而不是保證
這是隱藏資訊最多的一個詞。在大多數 VPS 平台上,vCPU 是一個物理核心時間的一片,和其他客戶的時間片一起排程。方案裡的數字表示突發時您能同時用多少個。能不能讓它們全部連續幾小時保持 100 %,是另一個問題,答案(如果有的話)寫在合理使用政策裡。
我們對自己的方案說得具體一點,因為含糊正是出問題的根源:vCPU 數量是短時突發的上限,不是獨佔的物理核心,長時間滿載的 CPU 可能會被限速,以保證同一台機器上每個人的公平。對網站應用、機器人、代理和資料庫來說,這幾乎感覺不到。連續幾小時做影片編碼就能感覺到。
購買前該問:vCPU 數量是保證的還是突發的,長時間負載下會怎樣?購買後該查:vmstat 裡的 st(steal)一列。如果 steal 穩定在兩位數,說明您在等別人的任務。
記憶體:唯一誠實的數字
記憶體是最沒有解讀空間的設定。8 GB 就是 8 GB。唯一的問題是方案夠不夠您的負載用,以及服務供應商是否超售,後者會表現為莫名其妙的 swap。如果您不確定需要多少,什麼時候真的需要 64 GB 記憶體 講了如何把記憶體問題和磁碟、CPU 問題區分開。
NVMe:是介面,不是速度
NVMe 是一種儲存介面,比老的 SATA 快得多。但標籤不會告訴您有多少台伺服器共用同一組磁碟,也不會告訴您每台伺服器有沒有 I/O 上限。一個方案可以寫著 NVMe,負載下卻只給出一般的吞吐。我們所有方案都使用 NVMe;但我們還是更希望您自己測一測,而不是隻聽我們說。
磁碟大小比人們想象的更重要。一個資料庫、記錄再加幾個 Docker 映像,吃掉 15 GB 的速度比您想的快,而方案只能原地升級,所以請選您半年後需要的磁碟。
「1 Gbit/s」:埠速率,不是吞吐量
這是您的伺服器和交換機之間連線的速率。它並不承諾您到任何地方都總能拿到一千兆。實際能拿到多少,取決於上行鏈路有多忙,以及到對端的路徑。
我們的數字供參考:Linux 方案是 1 Gbit/s 埠,Windows 方案是 150 Mbit/s。線路空閒時,一台 Linux 伺服器每個方向約 940 Mbit/s;多台伺服器同時繁忙時,線路在正在傳送資料的伺服器之間平均分配。細節,包括怎樣做一個不會騙您的測速,見 流量與速度。
「不限流量」:沒有配額,不是沒有限制
不限流量意味著沒人統計您用了多少 TB,也不會在用完每月額度後降速。它不代表速度不限:上面說的埠和公平份額依然有效。看到「不限頻寬」要格外小心。它通常的意思是沒有配額加一條合理使用條款,真正的限制就藏在這條條款裡。
設定表上沒有的那幾行
方案之間一些最大的差別,根本不出現在標題裡:
- 是否包含 IPv4。 沒有自己 IPv4 的方案無法在 IPv4 上託管網站。這裡,8 美元的 Small 是 NAT,16 美元的 Small-IP 設定相同、有自己的位址;一個轉發埠能做什麼、不能做什麼 講了實際差別。
- 備份。 已包含、付費附加,還是您自己的事。
- 計費週期。 這裡年繳比月繳便宜 10 %。
- 位置。 我們的伺服器在歐盟。選離您的使用者、或離您的機器人呼叫的 API 最近的那個。
- 調整設定。 能不能原地升級,需要多久?能不能降級?
比較價格時別騙自己
用價格除以記憶體 GB 數很誘人,但大多會誤導您。一個按 GB 算很便宜、卻沒有 IPv4、備份另收費、磁碟又小的方案,把您真正需要的東西加上之後,可能比那個「貴」的還貴。在兩邊搭出同樣完整的設定,包括位址、備份和您會用到的磁碟,然後比較這套設定的月總價。
在第一個小時裡檢查新伺服器
大多數服務供應商都能讓您低成本試用。第一個小時用來測量,而不是安裝:
nproc && lscpu | grep 'Model name'
vmstat 1 30 # watch the st column
fio --name=rand --rw=randread --bs=4k --size=1G --runtime=30 --time_based --direct=1
iperf3 -c <a test server near you> -P 4 -t 20
晚上高峰時段再跑一遍同樣的指令。如果數字一塌糊塗,您只花了很少的錢就發現了。
這些方法不適用的地方
設定表說不出客服怎麼樣、服務供應商如何處理濫用投訴,也說不出硬體壞了會怎樣。一個小時裡的測量預測不了下個月。而對有些負載來說,這些都無關緊要:跑在 Nano 上的 Telegram 機器人分辨不出好磁碟和極好的磁碟。比較花多少力氣,要和風險相稱。3 美元的機器人,選個合理的就往前走。生產資料庫,就要測試。
評論
目前還沒有評論。歡迎成為第一位。