Tôi có một chương trình rất đơn giản được viết trong 5 phút để mở một ổ cắm và vòng lặp thông qua yêu cầu và in ra màn hình các byte được gửi tới nó.Có giới hạn về số lượng kết nối tcp/ip giữa các máy trên linux không?
Sau đó tôi đã thử điểm chuẩn số lượng kết nối mà tôi có thể kết hợp với để tìm hiểu xem có bao nhiêu người dùng đồng thời tôi có thể hỗ trợ với chương trình này.
Trên máy khác (nơi mạng giữa chúng không bão hòa) Tôi đã tạo một chương trình đơn giản đi vào vòng lặp và kết nối với máy chủ và gửi byte "hello world".
Khi vòng lặp 1000-3000 khách hàng hoàn tất với tất cả các yêu cầu được gửi. Khi vòng lặp vượt quá 5000, nó bắt đầu có thời gian chờ sau khi hoàn tất số yêu cầu X đầu tiên. Tại sao điều này? Tôi đã chắc chắn để đóng ổ cắm của tôi trong vòng lặp.
Bạn chỉ có thể tạo quá nhiều kết nối trong một khoảng thời gian nhất định không?
Giới hạn này chỉ áp dụng được giữa cùng một máy và tôi không cần phải lo lắng về điều này khi sản xuất có 5000 yêu cầu đến từ các máy khác nhau?
bạn có thể giám sát ổ cắm của bạn sử dụng lệnh ss -s. Và làm theo các bước để tăng giới hạn socket nếu cần – Antarus
bạn có thể sử dụng lại các ổ cắm TIMED_WAIT như: 's = socket.socket (socket.AF_INET, socket.SOCK_STREAM, 0)' 's.setsockopt (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) ' – knutole