>> Edit article
이름
제목
패스워드
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