【发布时间】:2019-02-22 02:33:12
【问题描述】:
客户端套接字设置:
s = socket.create_connection(self._addr, timeout=15)
s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.settimeout(300)
服务器套接字设置:
sock = socket.socket(family=socket.AF_INET)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setblocking(False)
sock.bind(addr)
sock.listen(512)
每台客户端机器大约 300 个客户端(8 核 CPU)。 每个服务器工作者服务大约 300 个客户端。 请求主体很小,可能只有 2KB。 有时客户端会在 s.send_all(request) 远小于 300s 时引发超时错误,尤其是在客户端密集请求时。
我不知道问题出在哪里?在客户端还是服务器端?
【问题讨论】:
标签: sockets concurrency timeout