วิธีเพิ่มความเร็วอินเทอร์เน็ตของเซิร์ฟเวอร์ Linux ด้วย TCP BBR
BBR (แบนด์วิดท์คอขวดและ RTT) เป็นอัลกอริธึมการควบคุมความแออัดที่ค่อนข้างใหม่ซึ่งเขียนโดยวิศวกรซอฟต์แวร์ของ Google เป็นโซลูชันล่าสุดจากความพยายามอย่างต่อเนื่องของ Google ที่จะทำให้อินเทอร์เน็ตเร็วขึ้นผ่านโปรโตคอล TCP ซึ่งเป็นกลไกสำคัญของอินเทอร์เน็ต
จุดมุ่งหมายหลักของ BBR คือการบูตการใช้งานเครือข่ายและลดคิว (ซึ่งส่งผลให้กิจกรรมเครือข่ายช้าลง): ควรใช้งานบนเซิร์ฟเวอร์ แต่ไม่ใช่ในเครือข่ายหรือฝั่งไคลเอ็นต์ ใน Linux มีการใช้งาน BBR ในเคอร์เนลเวอร์ชัน 4.9 หรือสูงกว่า
ในบทความนี้ เราจะอธิบาย TCP BBR สั้นๆ จากนั้นจึงแสดงวิธีเพิ่มความเร็วอินเทอร์เน็ตของเซิร์ฟเวอร์ Linux โดยใช้การควบคุมความแออัดของ TCP BBR ใน Linux
ความต้องการ
คุณควรติดตั้งเคอร์เนล Linux เวอร์ชัน 4.9 ขึ้นไป โดยคอมไพล์ด้วยตัวเลือกเหล่านี้ (ไม่ว่าจะเป็นโมดูลหรือแบบฝัง):
- CONFIG_TCP_CONG_BBR
- CONFIG_NET_SCH_FQ
- CONFIG_NET_SCH_FQ_CODEL
วิธีตรวจสอบโมดูลเคอร์เนลใน Linux
หากต้องการตรวจสอบว่าตัวเลือกข้างต้นถูกคอมไพล์ในเคอร์เนลของคุณหรือไม่ ให้รันคำสั่งเหล่านี้:
cat /boot/config-$(uname -r) | grep 'CONFIG_TCP_CONG_BBR'
cat /boot/config-$(uname -r) | grep 'CONFIG_NET_SCH_FQ'
หากต้องการอัปเดตเคอร์เนลของคุณ โปรดดูคำแนะนำเหล่านี้:
- วิธีอัปเกรดเคอร์เนลเป็นเวอร์ชันล่าสุดใน Ubuntu
- วิธีติดตั้งหรืออัปเกรดเป็นเคอร์เนลเวอร์ชันล่าสุดใน CentOS 7
การเปิดใช้งานการควบคุมความแออัดของ TCP BBR ใน Linux
BBR ทำงานอย่างมีประสิทธิผลกับการกำหนดจังหวะ ดังนั้นจึงต้องใช้ร่วมกับตัวกำหนดเวลาแพ็กเก็ต fq qdisc แบบไม่มีคลาสสำหรับการกำหนดจังหวะการรับส่งข้อมูล หากต้องการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ fq qdisc ให้พิมพ์:
man tc-fq
ด้วยความเข้าใจที่ถูกต้องเกี่ยวกับ BBR ตอนนี้คุณสามารถกำหนดค่าบนเซิร์ฟเวอร์ของคุณได้ เปิดไฟล์ /etc/sysctl.conf โดยใช้โปรแกรมแก้ไขที่คุณชื่นชอบ
vi /etc/sysctl.conf
เพิ่มตัวเลือกด้านล่างที่ท้ายไฟล์
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
บันทึกและปิดไฟล์ จากนั้นทำให้เกิดการเปลี่ยนแปลงในระบบโดยใช้คำสั่ง sysctl
sysctl --system
จากภาพหน้าจอ คุณสามารถเห็นตัวเลือกต่างๆ ที่เพิ่มเข้ามาด้วยค่าที่เหมาะสม
การทดสอบการกำหนดค่าการควบคุมความแออัดของ TCP BBR
หลังจากดำเนินการกำหนดค่าที่จำเป็นแล้ว คุณสามารถทดสอบได้ว่าใช้งานได้จริงหรือไม่ มีเครื่องมือหลายอย่างสำหรับวัดความเร็วแบนด์วิดท์ เช่น Speedtest-CLI:
- วิธีทดสอบความเร็วอินเทอร์เน็ตของคุณแบบสองทิศทางจาก Command Line โดยใช้เครื่องมือ 'Speedtest-CLI'
เครื่องมืออื่นๆ ได้แก่ bmon (จอภาพแบนด์วิธ), nload, Wget – โปรแกรมดาวน์โหลดไฟล์ตามคำสั่ง และ cURL ซึ่งทั้งหมดแสดงแบนด์วิธเครือข่าย คุณสามารถใช้มันเพื่อการทดสอบได้
พื้นที่เก็บข้อมูล BBR Github: https://github.com/google/bbr
คุณอาจต้องการอ่านบทความที่เกี่ยวข้องต่อไปนี้
- ตั้งค่า “Speedtest Mini Server” ของคุณเองเพื่อทดสอบความเร็วแบนด์วิธอินเทอร์เน็ต
- วิธีจำกัดแบนด์วิธเครือข่ายที่ใช้โดยแอปพลิเคชันในระบบ Linux ด้วย Trickle
- วิธีการเปลี่ยนพารามิเตอร์รันไทม์เคอร์เนลในลักษณะถาวรและไม่ถาวร
ในบทความนี้ เราได้แสดงวิธีเพิ่มความเร็วอินเทอร์เน็ตของเซิร์ฟเวอร์ Linux โดยใช้การควบคุมความแออัดของ TCP BBR ใน Linux ทดสอบอย่างครอบคลุมภายใต้สถานการณ์ต่างๆ และให้ข้อเสนอแนะที่สำคัญแก่เราผ่านแบบฟอร์มความคิดเห็นด้านล่าง
เครดิต: Nixcraft