vấn đề của tôi:
Tôi có một quy trình tạo hơn 10k Kết nối TCP tới cùng một IP & Cổng đích mỗi giây. Sau một khoảng thời gian ngắn, không thể tạo kết nối mới nào nữa vì không còn cổng nguồn nào nữa.
Tôi đã cố gắng giảm thiểu điều này bằng cách thiết lập net.ipv4.ip_local_port_range
và net.ipv4.tcp_fin_timeout
nhưng nó không giải quyết được vấn đề.
Bây giờ suy nghĩ của tôi là: Nếu tôi có thể yêu cầu hạt nhân làm tròn các Địa chỉ IP nguồn, thì tôi có thể dễ dàng thêm nhiều IP hơn vào một giao diện của mình và do đó có giới hạn kết nối gửi đi cao hơn.
Tôi đã thử thêm nhiều tuyến đến cùng một đích thông qua cùng một giao diện nhưng chỉ định các IP nguồn khác nhau:
tuyến ip thêm mặc định qua 10.1.1.1 dev eth0 src 10.1.1.10
tuyến ip thêm mặc định qua 10.1.1.1 dev eth0 src 10.1.1.11
Nhưng tôi nhận được RTNETLINK trả lời: Tệp tồn tại
.
Tôi có đang đi đúng hướng ở đây không?
Việc thêm một IP nguồn khác có phải là "họ nên làm" trong những trường hợp đó không?
Có cách nào để làm tròn cân bằng/cân bằng tải việc sử dụng IP nguồn thông qua kernel không?
Hy vọng của tôi là, trong trường hợp tôi quản lý để đặt hai tuyến đường có cùng trọng số nhưng khác địa chỉ src vào cùng một mạng, hạt nhân sẽ làm tròn điều đó.
(Bối cảnh: Tôi đang chạy HAproxy trên máy đó và phải cân bằng tải hơn 10 nghìn kết nối tới một máy chủ phụ trợ)