gfcptun: GFCP over UDP を使用した高速かつ低遅延の接続トンネル。
gfcptun プロセスごとに 65535 以上のファイル記述子を利用できるようにします。
高速ローカル リンクには、9000 ~ 9702 の MTU が推奨されます。
Linux UDP 処理用に推奨される最小限のsysctl
チューニング パラメータ:
net.core.rmem_max=26214400 # Tune for BDP (bandwidth delay product)
net.core.rmem_default=26214400
net.core.wmem_max=26214400
net.core.wmem_default=26214400
net.core.netdev_max_backlog=2048 # (Adjust proportional to receive window)
-sockbuf 16777217
client -r " IN:4321 " -l " :8765 " -mode fast3 -nocomp -autoexpire 900 -sockbuf 33554434 -dscp 46
server -t " OUT:8765 " -l " :4321 " -mode fast3 -nocomp -sockbuf 33554434 -dscp 46
アプリケーション → 出力 (8765/TCP) → インターネット → 入力 (4321/UDP) → サーバー (8765/TCP)
-mode fast3 -ds 10 -ps 3
など。 調整するには、クライアントの-rcvwnd
とサーバーの-sndwnd
同時に増やします。
最小ウィンドウ サイズによって最大リンク スループットが決まります: ( 'Wnd' * ( 'MTU' / 'RTT' ) )
MTU は -mtu パラメータで設定する必要があり、物理インターフェイスの MTU を超えないようにしてください。ジャンボ フレームを使用した DC/高速ローカル リンクの場合は、9000 ~ 9702 の MTU を使用することを強くお勧めします。
再送信アルゴリズムの積極性を調整します。
fast3
→ fast2
→ fast
→ normal
→ default
-smuxbuf
16MiB (またはそれ以上) に増やします。ただし、使用する実際の値は、リンクの輻輳および利用可能な連続システム メモリによって異なります。
SMUXv2 を使用すると、ストリームごとのメモリ使用量を制限できます。 -smuxver 2
で有効にし、 -streambuf
(バイト単位のサイズ)で調整します。
-smuxver 2 -streambuf 8388608
(ストリームごと) 8MiB バッファー。リンクの受信側のストリーム バッファーを制限することでチューニングを開始します。
SMUXv2 構成はネゴシエートされないため、GFCP リンクの両側で手動で設定する必要があります。
GOGC
ランタイム環境変数のチューニングに関する推奨事項:
低メモリ システムおよび組み込みデバイスの場合は10 ~ 20
専用サーバーの場合は120 ~ 150 (またはそれ以上)
(GF)SMUX(v1/v2) チューニングに関する注意事項:
バッファー プール メカニズムは、定期的な実行時のガベージ コレクションに耐えられるように、プールからの飛行中のオブジェクトの最高水準点を維持します。
メモリはアイドル時に Go ランタイムによってシステムに返されます。これを調整するために使用できる変数は、 -sndwnd
、 -rcvwnd
、 -ds
、および-ps
です。
-smuxbuf
設定とGOMAXPROCS
変数を使用して、同時実行制限と全体的なリソース使用量の間のバランスを調整できます。
-smuxbuf
増やすと実際の同時実行数の制限は増加しますが、Go ランタイムのガベージ コレクションは実際には非決定的であるため、 -smuxbuf
値は同時実行数の処理最大値に直線的に比例しません。
実世界のリンク調整と最適化に必要なフィードバックを提供できるのは、経験的なテストだけです。
オプションの圧縮 ( Snappyを使用) がサポートされています。
圧縮により、冗長な低エントロピーデータの帯域幅が節約されますが、それ以外の場合はすべてオーバーヘッド (および CPU 使用率)が増加します。
圧縮はデフォルトで有効になっています。無効にするには、 -nocomp
を使用します。
USR1
信号を受信すると、詳細なリンク情報が表示されます。 -mode manual -nodelay 1 -interval 20 -resend 2 -nc 1