記憶體佔用測試
測試一
測試內容
soga 對 VMess MD5 認證資訊的資料結構記憶體最佳化
測試說明
VMess MD5+VMessAEAD認證,多名使用者,alterId 均為0
測試環境
Ubuntu 20.04,4核8G,無 swap
測試方法
新增10000名使用者,啟動後靜置10分鐘,計算記憶體佔用
測試資料
| 程式 | 記憶體佔用 | 記憶體百分比(取原版最低值為100%) |
|---|---|---|
| soga(v2.5.3),預設設定 | 193MB | 46% |
soga(v2.5.3),設定v2ray_reduce_memory=true | 118MB | 28% |
| v2ray(v4.41.1) | 424MB | 100% |
測試二
測試內容
模擬實際使用者的使用情況,測試 soga 對大量連線的記憶體最佳化
測試說明
VMess+MD5+VMessAEAD認證,websocket傳輸模式,1名使用者,alterId 為0
測試環境
Ubuntu 20.04,4核8G,無 swap
測試方法
用戶端->代理程式->伺服器端(模擬網站)
- 使用用戶端透過代理建立多條連線至伺服器端,用戶端在每條連線中每秒隨機傳送
4KB~16KB的封包至伺服器端,伺服器端在每條連線中每秒隨機傳送4KB~16KB的封包至用戶端 - 每條連線隨機持續
30~120秒後關閉,每關閉一條連線後會立刻建立新連線,保持正在執行的連線總數不變 - 連續執行 10 分鐘後,記憶體佔用基本趨於穩定,此時統計佔用的記憶體
| 程式 | 記憶體佔用(1000條連線) | 記憶體百分比(取原版最低值為100%) |
|---|---|---|
soga(v2.5.3),預設16KB連線快取 | 179MB | 55% |
| v2ray(v4.41.1),預設設定 | 1203MB | 368% |
v2ray(v4.41.1),16KB連線快取 | 380MB | 116% |
| v2ray(v4.41.1),停用連線快取 | 327MB | 100% |
xray(v1.4.2),16KB連線快取 | 416MB | 127% |
| xray(v1.4.2),停用連線快取 | 391MB | 120% |