2014-02-12 9 views
0

Linux/FreeBSD에서 실행중인 프로세스가 있습니다. 나는 그것을 추적하고 스레드 중 하나가 함수 write()에 대한 호출에서 차단되었음을 알았습니다. 인수로 TCP 소켓이 있습니다. 몇 시간 동안 걸려있을 수 있습니다.Linux/FreeBSD에서 write() 호출이 차단 된 문제를 검사하는 방법은 무엇입니까?

차단 된 이유에 대한 이유는 무엇입니까? write()? 잠재적 인 문제는 무엇입니까?

P.S. 시스템 유틸리티는 높이 평가됩니다.

+0

귀하의 서버는 stuft입니까? 그것, 또는 프로토콜 문제. –

+0

@MartinJames "stuft"란 무엇입니까? 원시 TCP를 사용하면서 어떤 종류의 문제를 겪을 수 있습니까? –

답변

0

현재 나의 경우 다음과 같은 문제가있었습니다. DNS 결의안은 저에게 멀리있는 IP 주소 나 심지어 도달 할 수없는 IP 주소를주었습니다. 해당 호스트에서 TCP 응답을 수신하지 못했기 때문에 write()이 중단되었습니다.

setsockoptSO_SNDTIMEO을 통해 보내기 작업에서 시간 초과를 설정하면 문제가 해결됩니다.