리눅스에서 Thread 의 최대개수는 어느정도 인가요?
글쓴이: oruddk / 작성시간: 목, 2006/01/26 - 11:57오전
Main process 에서 10개의 process를 띄우고 이 process는 각각 최대 64개의 thread를 만들 수 있도록 프로그램을 짜고 있습니다.
여기서 Main process 를 2개이상 띄우면 Thread 갯수가 많아져서 시스템이 다운되는 현상이 나타납니다..
리눅스 시스템에서 사용할수 있는 최대 thread 갯수와 시스템에 부하를 줄일수 방법에 대해 조언부탁드립니다.^^
-- 운영체제는 Redhat enterprise 4 구요 커널 버젼은 2.6.9-5.ELsmp 입니다.
새해 복 많이 받으세요^^
Forums:
개수는 시스템 하드웨어 사양(특히, 메모리)에 달려있습니다.1GB메모
개수는 시스템 하드웨어 사양(특히, 메모리)에 달려있습니다.
1GB메모리에서 8000개 띄운적있습니다.
* 주의사항은 스택인데, 쓰레드가 생성될때, 기본적으로 쓰레드당 스택이 주어지는데, 프로그램 코드를 잘~ 살펴보고 스택크기를 조절하여, 보다 많은 개수의 쓰레드를 생성할 수 있습니다. 스택크기를 적절히 조절(줄이라는) 하라는 얘기입니다. 이는 윈도우즈도 마찬가지입니다.
* 대체로 로컬변수를 감안하고, 리커시브루틴은 가급적 배제하고(루프로대체하던가..), 대충 char buf[1024] 이런식으로 메모리 크기를 적당히 대충 선언하지 말고, 실제 필요한 크기를 계산하여 변수선언하고, 동적할당도 고려해보고(단 멀티쓰레드에서 메모리 동적 할당/해제은 성능저하에 원인이 되기도 하니 관련테크닉을 동원하시길) 등등
댓글 달기