일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 터키여행
- dsquery
- Xperf
- nonpaged pool
- Hyper-V
- windows update
- paged pool
- windows debugging tool
- windows media service
- Local TempDB
- FTP7.5
- MSCS on VMWare
- LiveKD
- Windows Server 2016
- ftp7.5 장애조치 클러스터
- Windows Server 2016 Hyper-v Cluster
- Session space
- windbg
- 인문고전
- SQL Server 2008
- Nested VM
- failover cluster
- cluster node as Domain controller
- iSCSI target
- 작업관리자
- 프로세스 CPU 사용량
- SQL Server 2012R2 FCI
- 클러스터
- Windows Server 2008
- 안철수
- Today
- Total
류짱:Beyond MySelf
No buffer space available / 큐 공간 또는 버퍼가 부족 현상 본문
“No buffer space available” 오류는 Port 가 full 했을때도 발생 할 수 있는 오류 이고 Winsock buffer full 이 발생 해도 나올 수 있는 오류 입니다.
Port full 이 발생 되는지 확인 하기 위해서 netstat –ano 로 사용하고 있는 포트를 확인할 수 있습니다.
Winsock buffer full 이 발생 되면 다음 오류가 발생 됩니다
1. Winsock 을 이용한 application 에 아래와 같은 오류가 발생
ERR: Wed Nov 17 14:45:46 2010: ovcd (2676/5452): (bbc-99) Opening the server port or the lookup for the bind address failed: Bind address: 'localhost', port: '0', error message: (xpl-111) bind() to address '127.0.0.1:0' failed.
(WIN-10055) 큐 공간 또는 버퍼가 부족하여 소켓에서 해당 작업을 진행하지 못했습니다..
ERR: Wed Nov 17 14:45:46 2010: ovcd (2676/5452): (ctrl-63) Error initializing RPC server: Can not initialize RpcServer. error=(xpl-111) bind() to address '127.0.0.1:0' failed.
(WIN-10055) 큐 공간 또는 버퍼가 부족하여 소켓에서 해당 작업을 진행하지 못했습니다..
2. Localhost 에 대해 telnet 127.0.0.1 3389 연결 실패됨
3. Unix Server 로 ftp bind 실행 시 지원되는 버퍼 공간이 없습니다 오류 발생
4. \\127.0.0.1 실행 시 시스템에 부탁된 장치가 동작하지 않습니다 오류 발생
Afd.sys 가 Non paged pool 을 이용해서 Windows Socket 을 관리 하게 되고 Maximum 사용 할 수 있는 Windows Socket Buffer는 시스템의 리소스 상황에 따라 달라질 수 있습니다.
모든 프로세스의 handle 값이 높다고 해서 문제가 되는 것이 아니라 handle 중 AFD handle (\device\AFD) 의 개수가 많고 leak 이 있는 경우 socket 을 이용한 네트워크 연결이 불가능 하게 됩니다.
명확한 원인 분석을 위해서는 아래와 같은 방법으로 자료를 수집 합니다.
-
Port 고갈 확인
문제 발생 시 명령 프롬프트에서 다음 명령어를 실행 해서 포트 고갈 문제인지 확인 합니다
Netstat –ano >c:\netstat.txt
Windows Server 2003 의 경우 가용 포트가 5000개 입니다. 이를 넘어서면 포트를 이용한 연결이 안 됩니다. 연결 되어 있는 포트수를 확인 하려면 netstat –ano 결과를 보시면 됩니다.
TCPView v3.03
http://technet.microsoft.com/ko-kr/sysinternals/bb897437
-
프로세스의 handle 정보 확인
문제 발생 시 작업 관리자-프로세스-handle 값이 높은 프로세스가 있는지 확인 합니다.
프로세스 tab 을 선택 후 보기-열 선택-핸들에 체크 하게 되면 아래와 같이 핸들 정보 확인이 가능 합니다. 아래는 다른 사이트에서 winsock buffer full 발생 시 작업 관리자에서 handle 값이 높은 프로세스 확인한 스크린샷 입니다. 아래의 경우 winlog32.exe 를 중지하고 문제가 해결 되었으며 이 프로세스가 바이러스 임이 확인 되었었습니다. -
Handle.exe 를 이용한 handle 정보 확인
문제가 재현되면 아래와 같이 실행하여 handle 정보를 수집 합니다.
handle.exe -a > handles_problem.txt
해당 프로그램은 아래 link에서 download 하여 압축을 해제 하세요.
http://technet.microsoft.com/ko-kr/sysinternals/bb896655
감사합니다^^