gfcptun: ช่องทางการเชื่อมต่อที่รวดเร็วและมีเวลาแฝงต่ำโดยใช้ GFCP บน UDP
จัดให้มีตัวอธิบายไฟล์ตั้งแต่ 65535 ขึ้นไปต่อกระบวนการ gfcptun
แนะนำให้ใช้ MTU 9000-9702 สำหรับลิงก์ท้องถิ่นความเร็วสูง
พารามิเตอร์การปรับแต่ง sysctl ขั้นต่ำที่แนะนำสำหรับการจัดการ Linux UDP:
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/ความเร็วสูงที่มีเฟรมขนาดจัมโบ้ ขอแนะนำให้ใช้ MTU 9000-9702
ปรับความก้าวร้าวของอัลกอริธึมการส่งสัญญาณซ้ำ:
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 จะเพิ่มขีดจำกัดการทำงานพร้อมกันในทางปฏิบัติ อย่างไรก็ตาม ค่า -smuxbuf ไม่ ได้สัดส่วนเชิงเส้นตรงกับการจัดการการทำงานพร้อมกันสูงสุด เนื่องจากการรวบรวมขยะของ Go runtime นั้นไม่ได้ถูกกำหนดไว้สำหรับวัตถุประสงค์ในทางปฏิบัติ
มีเพียงการทดสอบเชิงประจักษ์เท่านั้นที่สามารถให้ข้อเสนอแนะที่จำเป็นสำหรับการปรับแต่งและเพิ่มประสิทธิภาพลิงก์ในโลกแห่งความเป็นจริง
รองรับการบีบอัดเพิ่มเติม (โดยใช้ Snappy )
การบีบอัดจะช่วยประหยัดแบนด์วิธในข้อมูล เอนโทรปีที่ซ้ำซ้อนและต่ำ แต่ จะ เพิ่ม โอเวอร์เฮด (และการใช้งาน CPU) ในกรณีอื่นๆ ทั้งหมด
การบีบอัด ถูกเปิดใช้งานตามค่าเริ่มต้น : ใช้ -nocomp เพื่อปิดใช้งาน
USR1 ข้อมูลลิงก์โดยละเอียดจะปรากฏขึ้น -mode manual -nodelay 1 -interval 20 -resend 2 -nc 1