>> Delete Reply from No. 48775 article
No. RE: 프로세스 최대 생성 갯수와 쓰레드 최대 생성
갯수 설정에 대한 질문입니다.

등록 2002-05-10 18:00:00 By localhost     조회 1
이름 남상규    

		thread의 개수 제한은 사용하는 리눅스 시스템에 얼마 만큼의 메모리가
존재하는가에 따라 달라집니다.
 kernel/fork.c에 보면 max_thread란 변수를
아래와 같이 초기화 합니다.
 void __init fork_init(unsigned long mempages)
{
    /*
     * The default maximum number of threads is set to a safe
     * value: the thread structures can take up at most half
     * of memory.
     */
    max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8;
     init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
    init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
}
 mempage는 physical page 개수를 의미합니다. 그러므로 사용하는 리눅스
시스템의 메모리가 얼마나 달려있는가에 따라 변합니다. 제한이 없으려면...
얼마나 많은 메모리를 달아야하는감?
: 리눅스를 공부한지 얼마 안되는 초보입니다.
:
: 쓰레드와 fork를 이용한 서버 프로그래밍을 하고 있는데
:
: 프로그램을 실행 시키면
:
: pthread_create() error
: : Resource temporarily unavailable
:
: 이런 에러 메세지가 뜨면서 중간에 쓰레드가 제대로 생성 되지 않는 것 같아서
:
: 아래의 명령어를 쳐서
:
: 지금 현재 제 시스템 상태를 확인 했습니다.
:
: ----------------------------------------------------------------------
: Linux debian 2.4.18 #1 SMP 2002. 05. 10. (금) 03:25:09 KST i686 unknown
:
: 2.2 버젼에서 최신 버젼으로 받아서 컴파일 했습니다.
:
: -------------------------------------------------------------------
: jkmks@debian:ulimit -a
: core file size        (blocks, -c) 0
: data seg size         (kbytes, -d) unlimited
: file size             (blocks, -f) unlimited
: max locked memory     (kbytes, -l) unlimited
: max memory size       (kbytes, -m) unlimited
: open files                    (-n) 1024
: pipe size          (512 bytes, -p) 8
: stack size            (kbytes, -s) 8192
: cpu time             (seconds, -t) unlimited
: max user processes            (-u) 2048
: virtual memory        (kbytes, -v) unlimited
:
: -----------------------------------------------------------------
:
: 질문 1 :
: 위에 보면 max user processes            (-u) 2048
: 이렇게 설정되어 있는데.
: 커널 2.4 대에서는 최대 프로세스 갯수가 동적으로 할당 된다고 들었습니다.
: 커널 2.4에서는 어떤 부분을 고쳐야지  2048이라는 값이 unlimited로 바꿀수 있나요?
:
: 질문 2 : 
: pthread_create() error
: : Resource temporarily unavailable
:
: 이러한 메시지가 뜨는 원인에 대해서 자세하게 설명 해 주세요 ^^;;;;
: 제가 생각하기에는 쓰레드가 light Process이기 때문에 위의 제한에
: 걸려서 리소스 부족으로 에러가 생성된다고 생각되는데
: 다른 이유도 있나요?
:
:
: 질문 3 :
: 커널 컴파일에 대한 질문입니다.
: (헤헤헤... 제가 모르는게 많아서 ^^;;;;)
:
:
: 처음에 커널 컴파일할때
: asm과 linux, scsi
: 이거에 대해서 커널소스로 링크를 해야 된다고 하던데,
:
: 만약에 링크를 안시켜주고 컴파일 하면
:
: /usr/include/linux
:
: 요기에 있는 파일을 참조하게 되나요?
:
: 아니면
: /usr/src/linux/include/linux 이 부분의 내용으로 컴파일 한 다음에
:
: 이 내용들을 /usr/include/linux 에 카피를 시키는 건가요?
:
: 데비안에서는 자동 설정 된다고 하는데..
: 약간 미심쩍인 부분이 이어서....
:
:
: 답변 부탁드리겠습니다 :)--서버 운영 공부좀 하려니 왜 이리 걸리는게 많아?
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved