select 소켓으로 동접 몇천정도되는 어플리케이션을 만드려고 하는데요 리눅스는 ubuntu를 쓰고있는데 따로 커널 세팅이나 OS 세팅을 해줘야하는 부분이 있는지요 서버 소켓에서 클라이언트 accept이벤트는 떨어지는데요 서버 client 소켓에서 select이벤트(read) 가 안떨어지네요... os ubuntu , g++ 쓰고 있습니다.
답변부탁드립니다
간단한 코드 snip 정도는 올려주어야 도움을 드릴수 있을듯요. 실제 사용한 코드를 올려주는게 도움이 됩니다.
동접 몇천이면 select 보다는 poll을 추천합니다. --------- 간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락 셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학 여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
--------- 간디가 말한 우리를 파괴시키는 7가지 요소
====> from "/usr/include/sys/select.h"
/* The fd_set member is required to be an array of longs. */ typedef long int __fd_mask; /* Some versions of define these macros. */ #undef __NFDBITS #undef __FDELT #undef __FDMASK /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (8 * sizeof (__fd_mask)) #define __FDELT(d) ((d) / __NFDBITS) #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
/* fd_set for select and pselect. */ typedef struct { /* XPG4.2 requires this member name. Otherwise avoid the name from the global namespace. */ #ifdef __USE_XOPEN __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS]; # define __FDS_BITS(set) ((set)->fds_bits) #else __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; # define __FDS_BITS(set) ((set)->__fds_bits) #endif } fd_set;
내부적으로 fd_set이 이렇게 되어있네요. __FD_SETSIZE 가 결정 하는듯한데. 제가 본 시스템은 1024이고 하니.... fd_mask가 1024/64(8 * sizeof (__fd_mask== long)) --> 16개이고 fd_mask가 8 byte 니깐 16 * 8 -> 128byte
fd_set 내부적으로 bit 처리 하는것으로 알고 있으니..* 8 해주면. 1024가 되네요.
ulimit -a 해서 보면 open files 가 1024네요.
아마도 /proc/sys/kernel 밑에 매칭되는게 잘 안보이는데..쩝.
1024이상 쓰실려면 커널 컴파일을 하셔야 할려나??
죄송합니다........찾아본다고 했는데..더 이상..모르겠네요..ㅋㅋ
[KILL] 죽을각오로.........
텍스트 포맷에 대한 자세한 정보
<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]
간단한 코드 snip
간단한 코드 snip 정도는 올려주어야 도움을 드릴수 있을듯요.
실제 사용한 코드를 올려주는게 도움이 됩니다.
동접 몇천이면 select 보다는 poll을 추천합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
====> from
====> from "/usr/include/sys/select.h"
/* The fd_set member is required to be an array of longs. */
typedef long int __fd_mask;
/* Some versions of define these macros. */
#undef __NFDBITS
#undef __FDELT
#undef __FDMASK
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (8 * sizeof (__fd_mask))
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
/* fd_set for select and pselect. */
typedef struct
{
/* XPG4.2 requires this member name. Otherwise avoid the name
from the global namespace. */
#ifdef __USE_XOPEN
__fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else
__fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
} fd_set;
내부적으로 fd_set이 이렇게 되어있네요.
__FD_SETSIZE 가 결정 하는듯한데.
제가 본 시스템은 1024이고 하니.... fd_mask가 1024/64(8 * sizeof (__fd_mask== long)) --> 16개이고
fd_mask가 8 byte 니깐 16 * 8 -> 128byte
fd_set 내부적으로 bit 처리 하는것으로 알고 있으니..* 8 해주면.
1024가 되네요.
ulimit -a 해서 보면 open files 가 1024네요.
아마도 /proc/sys/kernel 밑에 매칭되는게 잘 안보이는데..쩝.
1024이상 쓰실려면 커널 컴파일을 하셔야 할려나??
죄송합니다........찾아본다고 했는데..더 이상..모르겠네요..ㅋㅋ
[KILL] 죽을각오로.........
[KILL] 죽을각오로.........
댓글 달기