gfcptun: Terowongan koneksi cepat dan latensi rendah menggunakan GFCP melalui UDP.
Menyediakan 65535 atau lebih deskriptor file per proses gfcptun.
MTU 9000-9702 direkomendasikan untuk sambungan lokal berkecepatan tinggi.
Parameter penyetelan sysctl minimum yang disarankan untuk penanganan UDP Linux:
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 46Aplikasi → Keluar (8765/TCP) → Internet → Masuk (4321/UDP) → Server (8765/TCP)
-mode fast3 -ds 10 -ps 3 , dll. Untuk menyetel, tingkatkan -rcvwnd di klien, dan -sndwnd di server, secara bersamaan.
Ukuran jendela minimum akan menentukan throughput tautan maksimum: ( 'Wnd' * ( 'MTU' / 'RTT' ) )
MTU harus diatur dengan parameter -mtu dan tidak pernah melebihi MTU antarmuka fisik. Untuk link lokal DC/kecepatan tinggi dengan framing jumbo, sangat disarankan menggunakan MTU 9000-9702.
Sesuaikan agresivitas algoritma transmisi ulang:
fast3 → fast2 → fast → normal → default Naikkan -smuxbuf ke 16MiB (atau lebih), namun, nilai sebenarnya yang digunakan bergantung pada kemacetan tautan serta ketersediaan memori sistem yang berdekatan.
SMUXv2 dapat digunakan untuk membatasi penggunaan memori per-stream. Aktifkan dengan -smuxver 2 , lalu selaraskan dengan -streambuf (size in bytes) .
-smuxver 2 -streambuf 8388608 untuk buffer 8MiB (per streaming).Mulai penyetelan dengan membatasi buffer aliran di sisi penerima tautan.
Konfigurasi SMUXv2 tidak dinegosiasikan , jadi harus diatur secara manual di kedua sisi tautan GFCP.
Rekomendasi penyetelan variabel lingkungan runtime GOGC :
10 - 20 untuk sistem memori rendah dan perangkat tertanam
120 - 150 (atau lebih tinggi) untuk server khusus
Catatan mengenai penyetelan (GF)SMUX(v1/v2):
Mekanisme kumpulan penyangga mempertahankan tanda air yang tinggi untuk objek yang terbang dari kumpulan agar dapat bertahan dalam pengumpulan sampah waktu proses secara berkala.
Memori akan dikembalikan ke sistem pada runtime Go saat idle. Variabel yang dapat digunakan untuk menyetel ini adalah -sndwnd , -rcvwnd , -ds , dan -ps .
Pengaturan -smuxbuf dan variabel GOMAXPROCS dapat digunakan untuk menyesuaikan keseimbangan antara batas konkurensi dan penggunaan sumber daya secara keseluruhan.
Meningkatkan -smuxbuf akan meningkatkan batas konkurensi praktis, namun, nilai -smuxbuf tidak proporsional terhadap maksimum penanganan konkurensi karena pengumpulan sampah runtime Go, untuk tujuan praktis, bersifat non-deterministik.
Hanya pengujian empiris yang dapat memberikan umpan balik yang diperlukan untuk penyetelan dan pengoptimalan tautan di dunia nyata.
Kompresi opsional (menggunakan Snappy ) didukung.
Kompresi menghemat bandwidth pada data redundan dengan entropi rendah , namun akan meningkatkan overhead (dan penggunaan CPU) dalam semua kasus lainnya.
Kompresi diaktifkan secara default : gunakan -nocomp untuk menonaktifkan.
USR1 , informasi tautan terperinci akan ditampilkan. -mode manual -nodelay 1 -interval 20 -resend 2 -nc 1