싱글코어? 멀티코어? 내 프로그램에 맞는 CPU
"코어가 많은 서버가 좋을까, 코어 하나가 빠른 서버가 좋을까?" 답은 돌릴 프로그램이 코어를 어떻게 쓰는지에 달려 있습니다. 직접 확인하는 방법까지 정리했습니다.
코어, 스레드, vCPU
- 코어 — CPU 안에서 실제로 계산하는 일꾼입니다. 코어가 4개면 4가지 일을 동시에 처리할 수 있습니다.
- 스레드(논리 프로세서) — 코어 하나가 일을 두 갈래로 받는 기술(SMT, 하이퍼스레딩)을 쓰는 CPU는 코어 수의 두 배만큼 스레드가 보입니다. 다만 성능이 두 배가 되는 것은 아닙니다.
- vCPU — VPS에 배정된 가상 CPU입니다. 서버 안에서는
nproc명령이나 작업 관리자에 이 개수만큼 보입니다.
프로그램이 일을 나눠야 여러 코어를 씁니다
프로그램이 일을 여러 갈래(스레드나 프로세스)로 나눠서 처리해야 여러 코어가 함께 일합니다. 한 줄기로만 일하는 프로그램은 코어가 아무리 많아도 코어 하나만 바쁘고 나머지는 놀게 됩니다. 이런 프로그램은 코어 수보다 코어 하나의 성능(CPU 세대·클럭)이 속도를 좌우합니다.
| 프로그램 | 코어를 쓰는 방식 | 중요한 것 |
|---|---|---|
| 마인크래프트 자바 서버 | 게임 진행(틱)은 주로 한 스레드에서 처리합니다. 청크 불러오기, 메모리 정리(GC) 같은 일부 작업은 다른 코어도 씁니다. | 코어 하나의 성능 |
| 디스코드 봇 (Node.js·Python) | 봇 하나는 대부분 코어 하나로 동작하고, 보통 CPU를 많이 쓰지 않습니다. | 메모리, 꺼지지 않게 실행하기 |
| 웹 서버 (Nginx) | 접속을 여러 작업 프로세스로 나눠 처리합니다. | 접속이 많을 때 코어 수 |
| 데이터베이스 (MariaDB 등) | 동시에 들어오는 여러 요청을 여러 코어로 처리합니다. 요청 하나는 보통 코어 하나에서 처리됩니다. | 코어 수와 코어 성능, 메모리·디스크 |
| 압축·영상 변환·코드 빌드 | 작업을 나눠 여러 코어를 동시에 씁니다. (도구와 옵션에 따라 다름) | 코어 수 |
| 여러 프로그램을 한 서버에서 | 프로그램마다 다른 코어를 씁니다. | 코어 수 |
Node.js와 Python은 이렇게 동작합니다
- Node.js — 자바스크립트 코드는 기본적으로 프로세스 하나당 한 스레드에서 실행됩니다. 웹 서버라면 pm2의 클러스터 모드(
pm2 start app.js -i max)로 코어 수만큼 띄워 여러 코어를 쓸 수 있습니다. 디스코드 봇은 이렇게 여러 개 띄우면 같은 봇이 겹쳐 실행되어 명령에 두 번 반응하거나 오류가 나니 하나만 실행하세요. - Python — 보통 설치하는 파이썬(CPython)은 GIL 때문에 프로세스 하나에서 파이썬 코드가 한 번에 코어 하나로만 실행됩니다. 무거운 계산을 여러 코어로 나누려면
multiprocessing처럼 프로세스를 여러 개 써야 합니다.
내 서버에서 직접 확인하기
프로그램을 평소처럼 돌려둔 상태에서, 가장 바쁠 때 확인하는 것이 정확합니다.
Linux
sudo apt install -y htop
htop
맨 위에 번호가 붙은 막대가 코어별 사용률입니다.
- 막대 하나만 꽉 차고 나머지는 한가하다 → 코어 하나의 성능이 중요한 프로그램입니다. 코어를 늘려도 빨라지지 않습니다.
- 모든 막대가 고르게 꽉 찬다 → 코어 수가 부족합니다. vCPU가 많은 플랜이 도움이 됩니다.
- 막대는 한가한데 느리다 → CPU가 아니라 메모리·디스크·네트워크 문제일 수 있습니다. 서버가 느릴 때 점검하기를 참고하세요.
top을 쓴다면 실행 중에 1을 누르면 코어별로 보입니다. 프로그램의 %CPU가 100%면 코어 하나를 꽉 채운 것이고, 200%면 코어 두 개만큼 쓰고 있는 것입니다.
Windows
- 작업 관리자(
Ctrl + Shift + Esc) → 성능 탭 → CPU를 엽니다. - 그래프 위에서 마우스 오른쪽 버튼 메뉴를 열고 논리 프로세서로 바꾸면 코어별 그래프가 보입니다.
프로세스 탭의 CPU 사용률은 서버 전체 CPU를 100%로 놓고 계산합니다. 예를 들어 4코어 서버에서 어떤 프로그램이 25% 근처에서 더 오르지 않는다면, 코어 하나를 꽉 채우고 있을 가능성이 큽니다.
그래서 무엇을 고르면 될까요?
- 코어 하나만 바쁜 프로그램 → 코어 수보다 CPU 종류가 중요합니다. 요금제에는 시리즈마다 CPU 이름이 적혀 있으니 비교해보세요.
- 모든 코어가 바쁜 프로그램, 여러 프로그램을 함께 돌리는 경우 → vCPU가 많은 플랜을 고르세요.
- 오랫동안 CPU를 꾸준히 많이 쓴다면 → 단독서버도 비교해보세요. (VPS와 단독서버의 차이)
- 숫자로 비교하고 싶다면 → 서버 성능 측정하기에서 코어 하나와 전체 코어 성능을 각각 재는 방법을 안내합니다.
이용 중인 서버의 사양은 바꿀 수 없으니, 다른 플랜이 필요하면 새 서버를 받아 옮겨주세요.