背景
Solana validator など通信量とレイテンシが求められるももの UDP proxy として OpenVPN を使っている
Proxy ノード(e.g. VPS) と手元 PC 間は最大 50 M bps くらい.
Proxy ノードの CPU はそんなにつよつよではない.
lz4-v2 は, 一応 OpenVPN マニュアルでも推奨しているっぽいようなので使ってみましたが, なんかおそすぎました.
解決
lz4-v2 は, CPU 処理負荷が高いのか, バッファリングのサイズが大きくなるからなのか, lz4-v2 だとレイテンシが遅くなってしまいました.
細かいパケットを扱うような場合は lzo 圧縮を使いましょう. 非圧縮でもいいかもですが, その場合は Proxy <-> 手元 PC の帯域がボトルネックになってしまうかもしれません.
compress lzo
たとえば OpenVPN クライアント(手元 PC)から ping www.google.com
では lz4-v2 だと 100 ms くらいでしたが, lzo だと 15 ~ 20 ms くらいでした.
(Proxy ノードから直の ping だと 1.5 ms くらい)
特に OpenVPN は single-thread 実行のため(v 2.x), 圧縮すると CPU 負荷も増えてしまうという問題があります.
TODO
-
lz4
だとどうなるか調べる