บทนำ
มีปัญหาเกี่ยวกับการเชื่อมต่อเมื่อผู้เข้าชมจากประเทศอื่นเข้าถึงเว็บไซต์ของคุณ? สงสัยว่าทำไมความเร็วในการดาวน์โหลดจากเซิร์ฟเวอร์ต่างประเทศของคุณช้า? คุณสามารถตั้งค่าอัลกอริทึมการเพิ่มประสิทธิภาพ TCP เพื่อช่วยแก้ไขปัญหา
มีอัลกอริธึมการเพิ่มประสิทธิภาพ TCP ที่รู้จักกันดีหลายประการ อัลกอริธึมเหล่านี้บางอันไม่มีค่าใช้จ่ายตัวอย่างเช่น Zeta-TCP อย่างไรก็ตามในบทความนี้ฉันจะแนะนำอัลกอริธึมการเพิ่มประสิทธิภาพ TCP ฟรีที่มีประสิทธิภาพสูงที่เรียกว่า Hybla
การจัดเตรียม
ในการตั้งค่า Hybla คุณควรติดตั้ง:
- VPS หรือเซิร์ฟเวอร์เฉพาะที่มี Linux (แนะนำให้ใช้รุ่น LTS)
- หาก VPS ตรวจสอบว่าการจำลองเสมือนเป็น KVM มิฉะนั้นจะไม่มีสิทธิ์เพียงพอที่จะเรียกใช้ฟังก์ชันเคอร์เนลที่เหมาะสม
- เรียกใช้
/sbin/modprobe tcp_hybla
เพื่อเปิดใช้งาน Hybla และใช้lsmod | grep hybla
เพื่อตรวจสอบว่าการเพิ่มประสิทธิภาพสามารถทำงานได้ตามปกติ
องค์ประกอบ
หากเวอร์ชันเคอร์เนลของคุณใหม่กว่าเช่น CentOS 6.x 2.6.32 คุณสามารถใช้คำสั่งที่แสดงด้านล่างเพื่อดูอัลกอริทึมการติดขัดที่มีอยู่ จะแสดง Hybla เมื่อคุณโหลดแล้ว
sysctl net.ipv4.tcp_available_congestion_control
คุณสามารถตั้งค่า Vultr VPS ชั่วคราวเพื่อทดสอบก่อนใช้ Hybla ในสภาพแวดล้อมการใช้งานจริง
/etc/sysctl.conf
เพิ่มบรรทัดที่ระบุไว้ด้านล่างเพื่อ
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_congestion_control=hybla
sysctl -p
คุณสามารถเปิดใช้การเปลี่ยนแปลงทันทีโดยใช้คำสั่ง Hybla เปิดใช้งานแล้ว
เริ่มเมื่อบูท
บทช่วยสอนที่ปรากฏด้านบนกำหนดให้คุณต้องเรียกใช้คำสั่ง/sbin/modprobe hybla
และดำเนินการsysctl -p
ด้วยตนเองหลังจากการรีสตาร์ทแต่ละครั้ง หากต้องการเปิดใช้งานอัลกอริทึมนี้โดยอัตโนมัติคุณสามารถใช้ขั้นตอนเหล่านี้เป็นเทมเพลต พวกเขาเขียนสำหรับ CentOS
เพิ่มhybla.modules
ไฟล์ไปยัง/etc/sysconfig/modules
ไดเรกทอรีและป้อนเนื้อหาด้านล่าง:
#!/bin/sh
/sbin/modprobe tcp_hybla
จากนั้นให้สิทธิ์การดำเนินการไฟล์:
chmod +x hybla.modules