Tối ưu Linux Kernel tham số sysctl cho High-load Web Server (100k Concurrent Connections)
Vì sao máy chủ cấu hình khủng vẫn bị từ chối kết nối? Bạn thuê một chiếc Dedicated Server với 64 Cores CPU và 128GB RAM. Tuy nhiên khi chạy load test lên khoảng 30.000 kết nối đồng thời, server bắt đ…
☰ Mục lục bài viết (4 phần) Mở / Đóng mục lục
Vì sao máy chủ cấu hình khủng vẫn bị từ chối kết nối?#
Bạn thuê một chiếc Dedicated Server với 64 Cores CPU và 128GB RAM. Tuy nhiên khi chạy load test lên khoảng 30.000 kết nối đồng thời, server bắt đầu từ chối kết nối với lỗi Connection reset by peer hoặc SYN flood detected.
Nguyên nhân là cấu hình mặc định của Linux Kernel được thiết kế cho các tác vụ tổng quát, với các giới hạn mạng rất bảo thủ.
Cấu hình file /etc/sysctl.conf tối ưu cho High-load#
# 1. Tăng giới hạn số lượng kết nối đang chờ trong hàng đợi
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
# 2. Tái sử dụng kết nối ở trạng thái TIME_WAIT
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
# 3. Mở rộng dải port cục bộ cho outgoing connection
net.ipv4.ip_local_port_range = 1024 65535
# 4. Tăng dung lượng bộ đệm nhận/gửi TCP Socket (Buffer Tuning)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# 5. Sử dụng thuật toán kiểm soát tắc nghẽn BBR của Google
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
Áp dụng cấu hình ngay mà không cần khởi động lại máy chủ:
sudo sysctl -p
Đừng quên tăng giới hạn File Descriptors (nofile)#
Trong Linux, mỗi kết nối socket là một file descriptor. Cần tăng trong /etc/security/limits.conf:
* soft nofile 1048576
* hard nofile 1048576
Góc thảo luận#
Anh em đã thử nghiệm thuật toán tắc nghẽn BBR (Bottleneck Bandwidth and RTT) của Google chưa? Có thấy tốc độ tải file và độ ổn định mạng cải thiện rõ rệt không?
Xem thêm nội dung liên quan:
Thảo luận
1 phản hồi
Tham gia thảo luận
Bài liên quan trong #Backend & Microservices
-
Áp dụng Model Context Protocol (MCP) của Anthropic để kết nối AI với Postgres và Docker
Hoàng Nam (Tech Lead) · 💬 1 -
So sánh mô hình Embedding đa ngữ: OpenAI text-embedding-3 vs BGE-M3 vs Cohere
Minh Trí (AI Engineer) · 💬 1 -
Xây dựng Voice AI Agent thời gian thực với WebRTC và Whisper Live: Độ trễ dưới 500ms
Lan Anh (Senior Frontend) · 💬 1 -
Cấu hình Rate Limiting ở tầng Nginx và API Gateway: Chống DDOS Layer 7 hiệu quả
Đức Huy (DevOps Specialist) · 💬 1 -
Tokenization tiếng Việt của các LLM: Tại sao chi phí tiếng Việt đắt gấp 3 lần tiếng Anh?
Minh Trí (AI Engineer) · 💬 1