우리는 Java NIO를 기반으로 구현 된 http 서버를 가지고 있습니다. Java 버전 "1.6.0_20"을 사용하는 Ubuntu 10.04.2 LTS에서 실행 중임 Java (TM) SE 런타임 환경 (빌드 1.6.0_20-b02) Java HotSpot (TM) 서버 VM (빌드 16.3-b01, 혼합 모드)Java NIO가 파일 설명자를 유출시킵니다.
그러나 파일 설명자를 유출합니다. 모두 유닉스 도메인 소켓입니다.
"netstat -anp"명령을 사용하면 프로세스가 두 개의 unix 도메인 소켓 만 열 수 있음을 알 수 있습니다. 그러나 lsof -p를 사용하면 유닉스 도메인 소켓이며 netstat에서 찾은 것과 동일한 장치 값과 노드 값을 가진 막대한 양의 파일 디스크립터가 있음을 알 수 있습니다.
코드를 확인했으며 모든 SocketChannels이 제대로 닫혔습니다.
Sun JDK의 버그입니까? 어떻게 해결할 수 있습니까?
Java 6 업데이트 26을 사용해 보셨습니까? JVM 버그 인 경우, 그것이 버그 인 것으로 판명되었을 가능성이 있습니다. –
@James 유닉스 도메인 소켓에서 자바를 사용하기 위해 어떤 NIO API를 사용하고 있습니까? XNIO와 같은 특정 API를 사용하고 있습니까? Unix Domain Sockets 및 NIO에서 작동하는 것을 찾고 있습니다. 감사. – jbx