안녕하세요. 소켓쪽에 대해 문의 드립니다. 멀티 스레드형식의 클라이언트에서 서버에 접속하여 데이터를 전송하고 종료하고 합니다. 이때 스레드풀 갯수가 크게 늘어나면 어느순간 connection fail이 일어나고 에러를 확인해보면 이미 사용중인 자원이라는 10048에러더군요.. 링거나 리유스 옵션을 주었는데도 잘안되네요.. 해결할수 있는 방법이 없을까요?
ls -la /proc/pid/fd에서 소켓이 얼마나 열렷는지 보세요
만약 소켓이 많이 열렷고 그 마지막이 10048이라면 소켓을 열고 닫지 않앗기 때문입니다.
프로그램상 close(socket)의 루틴이 제대로 되어 있는지 확인하세요.
혹시라도 쓰레드가 비정상적으로 종료될때 close()를 안해서 문제가 될 수도 있습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
일단
ls -la /proc/pid/fd에서 소켓이 얼마나 열렷는지 보세요
만약 소켓이 많이 열렷고 그 마지막이 10048이라면 소켓을 열고 닫지 않앗기 때문입니다.
프로그램상 close(socket)의 루틴이 제대로 되어 있는지 확인하세요.
혹시라도 쓰레드가 비정상적으로 종료될때 close()를 안해서 문제가 될 수도 있습니다.
댓글 달기