스레드 생성 최대 갯수..늘리는법..
글쓴이: jindogg / 작성시간: 토, 2005/09/24 - 5:18오후
안녕하세요.
#ifdef __DEBUG
for( int i=0;i<3000 ; i ++ )
{
pthread_create(&threadID,NULL,mon_thread,(void*)&i);
}
#endif
이런식으로 스레드를 생성 시켜봤습니다.
2030 개에서 딱 멈춥니다. 실패 한것이죠.
ulimit -n 65535 로 확 늘려 줘도 안됩니다.
다른 환경에서 뛰워 봐도 2030 개가 최고 입니다.
fedora2 , 레드햇9 ,... 메모리도 1G부터 2G 까지
해봤는데 똑같이 2030개 밖에 생성이 안됩니다.
아시는분 도움 부탁드립니다.
좋은 하루되세요.
Forums:
1. 쓰레드의 스택크기 조절- pthread_attr_setstack
1. 쓰레드의 스택크기 조절
- pthread_attr_setstacksize() 나, 생성시 파라메터를 잘~ 해서 또한, 프로그램의 메모리필요성정도를 잘~ 해서 스택크기를 적절히 잡아줍니다.(일단 이거로 8천개의 NPTL 쓰레드를 생성해봤습니다만....)
2. root로 돌리거나, /etc/security/limits.conf에 적절한 값을 넣어준다.
예를 들어,
jindogg hard nproc 20000
jindogg soft nproc 20000
3. 메모리를 더 확장한다.(돈....들여서 램사다가 꽂는다. -.- ; )
# grep totalpages /var/log/dmesg <= 아시다시피 부팅시 커널로그에서 문자열 검색
On node 0 totalpages: 262128 <== 1기가램인 테스트 기계의 경우
#
라면,
262128/16 = 16383이고, 동시 가능한 thread개수를 의미한다.
댓글 달기