기본 콘텐츠로 건너뛰기

라벨이 프로세스인 게시물 표시

스레드, 프로세스, 코어는 언제 많을수록 느려질까?

스레드, 프로세스, 코어는 언제 많을수록 느려질까? 빠른 답 스레드 수를 늘리면 동시에 처리할 수 있는 작업은 늘 수 있지만, 컨텍스트 스위칭, 락 경합, 캐시 미스 비용도 함께 커질 수 있습니다. 프로세스는 메모리 격리와 장애 분리에 유리하지만, 스레드보다 생성 비용과 메모리 사용량, 프로세스 간 통신 비용이 큽니다. 코어가 많아도 프로그램이 일을 병렬로 나누지 못하거나 다른 자원에서 막히면 성능 향상은 제한됩니다. 적정 개수는 CPU 사용률, run queue, 메모리, I/O 대기, p95·p99 응답 시간을 함께 보며 측정해야 합니다. 목차 한눈에 비교 시간 흐름으로 이해하기 왜 많을수록 빨라 보일까 스레드가 많을 때 생기는 비용 프로세스가 많을 때 생기는 비용 코어가 많아도 빨라지지 않는 경우 CPU 바운드와 I/O 바운드의 선택 기준 워커 수와 스레드 풀 크기 잡기 Node.js 워커 스레드로 비교하기 운영 명령 출력으로 병목 확인하기 숫자를 조정할 때 남겨야 할 증거 한눈에 비교 스레드, 프로세스, 코어는 모두 동시 처리와 관련 있지만 같은 층위의 개념은 아닙니다. 코어는 하드웨어 실행 자원이고, 프로세스는 운영체제가 격리해 관리하는 실행 단위이며, 스레드는 프로세스 안에서 작업을 나누는 실행 흐름입니다. 실행 자원 코어는 실제 명령어를 실행하는 CPU 자원이고, 스레드와 프로세스는 그 자원을 배정받는 실행 단위입니다. 격리 수준 프로세스는 독립된 메모리 공간을 갖고, 같은 프로세스 안의 스레드는 메모리를 공유합니다. 생성 비용 프로세스는 주소 공간과 자원을 새로 준비해야 하므로 대체로 무겁고, 스레드는 상대적으로 가볍지만 많아지면 스택 메모리와 스케줄링 비용이 누적됩니다. 통신 방식 스레드는 공유 메모리로 빠르게 데이터를 주고받을 수 있지만 동기화가 필요하고, 프로세스는 IPC를 통해 더 격리된 방식으로 통신합니다. 느려지는 지점 실행 가능한 작업이 CPU 코어보다 많아지거나, 락·메모리·DB·디스크·네트워크 같은 공유 자원에서...