Java로 작성된 TCP 서버에서 임의의 클라이언트가 5 ~ 60 초 지연되는 경우가 있습니다. 이 때 서버에 여유 공간이 충분하고 CPU가 남아 있습니다. 이 때 소켓이 이미 열려 있습니다.Java 소켓에서 30 초 지연됩니까?
이것은 특정 클라이언트에게 임의로 발생합니다. java 프로세스는 데이터가 전송 된 것처럼 계속되지만 서버는 실제로 데이터를 송수신하지 않습니다.
Nagle을 비활성화했지만 Nagle이 그러한 대기 시간을 초래하는 것을 볼 수 없습니다.
나는 이것에 대해 혼란 스럽기 때문에 나는별로 구체적이지 않다. 이론적으로 이것은 무엇을 일으킬 수 있습니까?
또 다른 한가지 : 클라이언트 중 한 명이 그런 지연을 가지고 있으면 다른 클라이언트가 정상적으로 실행 중입니다. 그리고 그들은 모두 서버의 동일한 이더넷 인터페이스에 있습니다. 나는 그런 것을 설명 할 수 없다.
동시성 아키텍처에서 교착 상태를 확인했는지, 시간 초과 잠금을 사용하는 경우 잠금 시간이 초과 되었습니까? – gd1
예. 있습니다. 교착 상태가 없습니다 – Joel