Tất cả các ví dụ tôi đã thấy trong số sock.listen(5)
trong tài liệu python đề nghị tôi nên đặt số backlog tối đa là 5
. Điều này gây ra sự cố cho ứng dụng của tôi vì tôi đang mong đợi một số lượng rất lớn (nhiều kết nối đồng thời). Tôi đặt nó lên 200 và chưa thấy bất kỳ vấn đề nào trên hệ thống của mình, nhưng tôi tự hỏi tôi có thể đặt nó cao đến mức nào trước khi nó gây ra vấn đề ..Python sock.listen (...)
Có ai biết không?
Chỉnh sửa: Đây là vòng lặp accept() của tôi.
while True:
try:
self.q.put(sock.accept())
except KeyboardInterrupt:
break
except Exception, e:
self.log("ERR %s" % e)
Một số thông tin tại đây: http://stackoverflow.com/questions/114874/socket-listen-backlog-parameter-how-to-determine-this-value –
Tôi vừa kiểm tra giá trị của 'socket.SOMAXCONN' và nhận thấy '128' của nó, điều này sẽ giải thích lý do tại sao đặt giá trị thành 200 không hoạt động với' ab -c 200' (nó chỉ hoạt động cho đồng thời 120). – Ian
Sử dụng self.q.put_nowait() để thay thế. –