VMess 協定測試
VMess 協定測試
測試內容
新增10000名使用者,模擬大量使用者同時使用VMess 協定的情況
測試說明
伺服器端同時支援VMess+MD5+VMessAEAD認證,用戶端使用VMessAEAD進行連線,websocket傳輸模式,10000名使用者,alterId 為0
測試環境
Ubuntu 20.04,4核8G,無 swap
測試方法
用戶端->代理程式->伺服器端(模擬網站)
- 使用用戶端透過代理建立
3000條連線至伺服器端,用戶端在每條連線中每2秒隨機傳送1KB~16KB的封包至伺服器端,伺服器端在每條連線中每1秒隨機傳送1KB~16KB的封包至用戶端 - 每條連線隨機持續
30~120秒後關閉,每關閉一條連線後會立刻建立新連線,保持正在執行的連線總數不變 - 保持執行
10分鐘,再靜置5分鐘,繼續執行5分鐘,最後靜置10分鐘,總共測試30分鐘,記錄 CPU、記憶體、連線數、網速情況
v2ray 監控圖
CPU 間歇上升是因為 VMess 協定每隔 10 秒會為所有使用者生成新的驗證資訊,需要佔用 CPU,VMess 協定特性,以下 xray 和 soga 也是同理

xray 監控圖

soga 監控圖

測試資料彙總
| 程式 | 最高記憶體佔用 | 結束時記憶體佔用 | 高峰時段 CPU 平均佔用率 | 閒置時段 CPU 平均佔用率 |
|---|---|---|---|---|
v2ray-core(v4.45.2),設定16KB連線快取 | 1079MB | 565MB | 33.62% | 1.45% |
xray-core(v1.5.9),設定16KB連線快取 | 1084MB | 553MB | 31.74% | 1.43% |
soga(v2.7.7),預設16KB連線快取,未開啟v2ray_reduce_memory,開啟後記憶體可更低 | 604MB | 276MB | 21.25% | 1.58% |