19강 / 20강
서버 고르기 — 스펙을 돈으로 환산하기
vCPU · ECC · 클라우드 인스턴스 · 스케일 업 vs 아웃
사장님이 묻습니다. "서버를 새로 사려는데, 어떤 걸 사야 해요?"
지금까지 배운 걸 전부 동원할 시간입니다. 지금 무엇이 병목인지 알아야 무엇에 돈을 쓸지 정할 수 있어요.
vCPU 라는 애매한 단위
클라우드 견적서에 4 vCPU라고 적혀 있습니다. 이게 뭘까요?
대부분의 클라우드에서 1 vCPU = 물리 코어의 스레드 하나입니다. 즉 4 vCPU = 물리 코어 2개예요. 11강에서 봤듯이 하이퍼스레딩 스레드는 코어의 절반이 안 됩니다.
vCPU 숫자만 보면 두 배 비싼 걸 살 수 있습니다.
Python
브라우저에서 실행
어디에 돈을 쓸까 — 병목별 처방
| 지금 증상 | 돈을 써야 할 곳 | 쓰면 안 되는 곳 |
|---|---|---|
us 높음, 메모리 여유 | 코어 수 · 클럭 | 메모리, 디스크 |
wa 높음 | SSD/NVMe, 더 좋은 디스크 | CPU (효과 0) |
si/so 있음 | 메모리 증설 | CPU, 디스크 |
si(softirq) 높음 | 회선 · CDN · LB | CPU, 메모리 |
| 전부 여유로운데 느림 | 코드·쿼리 개선 (돈 0) | 서버 전부 |
마지막 줄이 중요합니다. 서버를 바꿔도 안 빨라지는 경우가 생각보다 많습니다. 느린 쿼리 하나를 고치면 서버 세 대 값이 절약되기도 해요.
ECC 오류가 로그에 쌓이면 메모리 교체 신호입니다.
bash
브라우저에서 실행
스케일 업 vs 스케일 아웃
코어당 단가는 서버가 커질수록 비싸집니다.
Python
브라우저에서 실행
견적을 내 봅시다
실제 상황: "평소 초당 30건, 세일 때 초당 300건. 주문 데이터 200GB. 예산은 월 50만 원."
숫자로 견적을 내는 법. 요청당 ms 는 반드시 실측해야 합니다.
Python
브라우저에서 실행
🤔 확인 문제
iostat에서 await가 40ms로 치솟고 %wa가 60%인 서버입니다. 예산 100만 원을 어디에 써야 할까요?해설
wa가 높다는 건 CPU가 디스크를 기다리는 중이라는 뜻입니다. CPU를 늘리면 기다리는 CPU가 늘어날 뿐이에요. 다만 메모리를 늘려 파일 캐시를 키우는 것도 디스크 읽기를 줄여 주니 차선책은 됩니다 — 쓰기가 문제라면 SSD가 정답입니다.🤔 확인 문제
웹 서버를 4코어 8대로 나누는 것과 32코어 1대로 두는 것의 가장 큰 차이는?
해설 스케일 아웃은 단가와 가용성에서 이기고 복잡함에서 집니다. 그 복잡함을 감당할 인력과 도구가 있느냐가 판단 기준이에요. 그리고 DB는 이렇게 못 나눕니다 — 쓰기는 결국 한 곳으로 모입니다.