Giới thiệu
Gặp sự cố với kết nối khi khách truy cập từ các quốc gia khác truy cập trang web của bạn? Tự hỏi tại sao tốc độ tải xuống từ máy chủ nước ngoài của bạn chậm? Bạn có thể thiết lập các thuật toán tối ưu hóa TCP để giúp giải quyết vấn đề.
Có một số thuật toán tối ưu hóa TCP nổi tiếng. Ví dụ, không phải tất cả các thuật toán này đều miễn phí, Zeta-TCP. Tuy nhiên, trong bài viết này, tôi sẽ giới thiệu một thuật toán tối ưu hóa TCP miễn phí với hiệu suất cao được gọi là Hybla.
Sự chuẩn bị
Để thiết lập Hybla, bạn nên trang bị:
- Một VPS hoặc máy chủ chuyên dụng với Linux (ưu tiên phiên bản LTS).
- Nếu VPS, hãy kiểm tra xem ảo hóa có phải là KVM không. Nếu không, nó sẽ không có đủ đặc quyền để gọi các hàm kernel thích hợp.
- Chạy
/sbin/modprobe tcp_hybla
để kích hoạt Hybla và sử dụng lsmod | grep hybla
để kiểm tra xem tối ưu hóa có thể hoạt động bình thường không.
Cấu hình
Nếu phiên bản kernel của bạn mới hơn, ví dụ như CentOS 6.x 2.6.32, bạn có thể sử dụng lệnh được liệt kê bên dưới để xem các thuật toán tắc nghẽn có sẵn. Hybla sẽ được hiển thị, khi bạn đã tải nó.
sysctl net.ipv4.tcp_available_congestion_control
Bạn có thể tạm thời thiết lập VPS Vultr để kiểm tra trước khi sử dụng Hybla trong môi trường sản xuất.
Thêm các dòng được liệt kê dưới đây để /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
Bạn có thể kích hoạt thay đổi ngay lập tức bằng cách sử dụng lệnh sysctl -p
. Hybla hiện đã được kích hoạt.
Bắt đầu khi khởi động
Hướng dẫn được liệt kê ở trên yêu cầu bạn chạy các lệnh /sbin/modprobe hybla
và sysctl -p
thủ công sau mỗi lần khởi động lại. Để bật thuật toán này tự động, bạn có thể sử dụng các bước này làm mẫu. Chúng được viết cho CentOS.
Thêm một hybla.modules
tập tin vào /etc/sysconfig/modules
thư mục và nhập nội dung dưới đây:
#!/bin/sh
/sbin/modprobe tcp_hybla
Sau đó cấp các đặc quyền thực thi tệp:
chmod +x hybla.modules