TCP 스택 조정, (TIME_WAIT) - Python 프로세스가 sysctl 설정을 무시합니까?

TCP 스택 조정, (TIME_WAIT) - Python 프로세스가 sysctl 설정을 무시합니까?

다수의 나가는 클라이언트 연결을 활성화하기 위해 다양한 TCP 설정을 조정하려고 합니다. Ubuntu 16.04의 /etc/sysctl.conf에 다음을 넣었습니다.

net.ipv4.ip_local_port_range = 18000 65535 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 3

이를 적용한 sysctl -p다음 netcat을 사용하여 서버 중 하나에 새 연결을 만든 다음 종료했습니다.

nc 35.158.221.XXX 22

그런 다음 다음을 사용하여 netstat를 확인했습니다.

netstat -on | grep TIME_WAIT | less

각각의 경우 3초 이내에 연결이 올바르게 삭제됩니다.

이제 질문은 다음과 같습니다.

위의 내용 직후에 나가는 http 연결을 생성하는 많은 스레드가 포함된 Python 스크립트를 시작했습니다. 그러나 이 스크립트에서는 연결의 TIME_WAIT 상태가 기본 60초 후에 만료됩니다.

1

왜 이런 일이 발생하고 Python의 연결이 커널 설정을 무시합니까? 이것이 어떻게 가능한지? 이 설정이 이 프로세스에 적용되지 않는 이유는 무엇입니까? 캐시 같은 것을 새로 고치는 것을 잊었나요?

관련 정보