Thread에대 대한 고찰
[1]. Multi Thread를 이용한 개발시 확인 필요사항.
1. OS에서 지원하는 Thread의 최대 갯수
2. Process당 허용가능한 최대 Thread 갯수
3. Process당 적정 수준의 Thread 갯수
4. Thread 생성 에러가 나는 경우
[2]. 위 3가지에 대한 확인 방법(Linux 기준)
1. OS에서 지원하는 Thread의 최대 갯수(OS 전체에서 사용가능한 Threa갯수이다)
- cat /proc/sys/kernel/threads-max
2. Process당 허용가능한 최대 Thread 갯수
- Linux는 프로세스당 Thread를 제한 하는 것이 아니라. 단지 전체 Thread 갯수만 관리한다.
3. Process당 적정 수준의 Thread 갯수
- 바쁜 시스템 : cpu core개수 + 1
- 한가한 시스템 : cpu core개수 * 2
4. Thread 생성 에러가 나는 경우
- 시스템 전체의 max thread 값이 높다고 하여도 메모리의 한계로(out of memory) 더이상 thread 생성이 어려울 수 있다.
[3]. Linux에서 Thread 최대 갯수 계산 하는 방법
max_threads = totalram_pages / (8 * 8192 / 4096);
kernel/fork.c
/* 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 / (8 * THREAD_SIZE / PAGE_SIZE);
참조:
https://kldp.org/node/133227
http://atin.tistory.com/465
http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux
'프로그래밍' 카테고리의 다른 글
sqlite3 exec에대한 대체 사용법 (0) | 2017.05.17 |
---|---|
SourceTree 한글 깨짐 해결( EUC-KR로 설정) (1) | 2017.01.31 |
인코딩 통일 하기 (0) | 2016.12.27 |
AutoMake 메뉴얼 정리 (0) | 2016.12.27 |
포인터의 개념. (0) | 2016.12.27 |