클라우드 서버 벤치마크와 구성 과장: 오래된 CPU 식별 및 함정 피하기
삼중 증거로 오래된 CPU 프리미엄 거짓말 폭로
Steal Time + 디스크 캐시 + 실제 벤치마크 삼중 검증으로 오래된 CPU에 프리미엄을 지불하지 마세요.
벤치마크 실제와 표기 스펙 차이는 얼마나 될까
클라우드 서버의 벤치마크 점수와 표기 스펙 간의 차이는 흔히 생각보다 더 크다. 특히 '고클럭'을 내세우는 일부 구형 CPU, 예를 들어 E5-2690 v4, E5-2680 v4 같은 2016년 전후의 제온은 싱글 코어 주파수가 낮아 보이지 않지만, 실제로 단일 스레드 벤치마크를 돌려 보면 최신 세대 제온의 절반에 불과할 수 있다. 벤치마크 점수의 '허위 표기' 원인은 크게 두 가지다. 하나는 하드웨어 세대 차이, 다른 하나는 오버커밋(초과 판매)으로 인한 Steal Time 급증이다.
구형 플랫폼에서 가상화를 사용하면 /proc/stat의 steal 필드가 CPU가 하이퍼바이저에 의해 빼앗긴 시간을 알려준다. mpstat -P ALL 1에서 %steal이 오랫동안 10%를 초과하는 것이 보이면, 이웃(다른 테넌트)이 리소스를 두고 경쟁하고 있다는 뜻이다. 이 경우 표기 사양이 아무리 높아도 벤치마크 점수는 불안정하다. 또 하나의 교묘한 지표는 디스크 캐시 절벽이다. 구형 CPU에 물린 구형 스토리지는 캐시가 소진되면 IOPS가 절반으로 뚝 떨어지며, 벤치마크 곡선에 뚜렷한 하강 구간이 나타난다.
차이를 정량화하려면 yabs 또는 sysbench cpu --threads=1 run을 실행해 공식 표기 스펙과 비교하면 된다. 필자는 표기 3.5GHz의 구형 플랫폼이 실제 단일 코어 점수에서 2.9GHz 신형 플랫폼보다 40% 낮은 경우를 본 적이 있다. 즉, '고클럭 + 구형 구성'에 지불한 비용의 절반은 중고 하드웨어에 대한 프리미엄일 수 있다. 이것이 바로 FinOps에서 가장 전형적인 네거티브 비용이다. 동일한 예산이라면 새 플랫폼이나 공식 인증 인스턴스를 선택하는 것이 단위 컴퓨팅 비용이 더 낮다.
그러니 표기 사양만 보지 말라. 云划算에서 실제 벤치마크 점수와 Steal Time 임계값을 기준으로 인스턴스를 필터링하여 예산을 진짜 성능에 투자할 것을 권장한다.
Steal Time으로 초과 판매 적발하기
클라우드 서버 사양이 실제와 다른지 간파하려면, 첫 번째로 steal time을 확인해야 한다. 이 지표는 하이퍼바이저가 보내는 신호다. 물리 CPU를 호스트가 옆 가상 머신에 넘겨줄 때, 우리의 vCPU는 그저 기다릴 수밖에 없다. top 명령에서 C를 눌러 CPU 목록을 보고, t를 눌러 steal 열을 확인하거나, vmstat 1을 실행해 st 필드를 관찰하라. 수 분간 반복 샘플링했을 때 st 평균이 5%를 넘거나, 심지어 20% 이상으로 튀는 스파이크가 있다면, 축하한다. 당신은 나쁜 이웃들과 같은 물리 코어를 공유하고 있는 것이다.
# 连续采样 10 次,每次间隔 1 秒,取 st 平均值
vmstat 1 10 | awk 'NR>3 {sum+=$16} END {print "avg steal:", sum/(NR-3), "%"}'Steal Time의 스파이크는 평평한 높은 값보다 더 경계해야 한다. 이는 초과 판매가 동적임을 의미하며, 피크 시간대에는 응답 시간이 심전도처럼 불규칙하게 출렁인다. 앞 절에서 언급한 디스크 Cache 급락과 결합하면, 이는 오래된 물리 머신에서 반복적으로 재임대된 호스트임을 거의 확정할 수 있다.
FinOps 관점에서 보면 이는 전형적인 프리미엄 사기다. 새 하드웨어 가격을 지불했지만, 실제로는 낡은 CPU가 잘게 쪼개진 찌꺼기를 받은 것이며, 프리미엄 비율은 공공 클라우드의 세 배에 육박한다. 높은 클럭에 현혹되지 마라. 아무리 오래된 제온(Xeon)의 단일 코어가 강력해도 이웃의 선점을 견딜 수 없다. 벤치마크를 돌리기 전에 먼저 steal을 확인하라. 그렇지 않으면 Geekbench 수치가 아무리 화려해도 초과 판매 샌드박스 위의 신기루에 불과하다. 이 지표는 무료이고 재현 가능하며, 어떤 업체의 약속보다 정직하다.
디스크 Cache 절벽 증거 확보
앞서 Steal Time으로 오버커밋을 잡아냈지만, 일부 오래된 IDC에서는 CPU 스케줄링이 평평하게 압축되어 Steal 데이터가 오히려 나빠 보이지 않을 수 있습니다. 이때 성급하게 결론을 내리지 말고, 디스크 Cache로 화력을 돌리세요. 디스크 Cache는 가장 거짓말을 하지 않는 하드웨어 중 하나입니다.
실제로는 fio로 두 라운드를 연속 실행하는 습관이 있습니다. 먼저 Page Cache를 사용하는 buffered 쓰기를 테스트하고, 그다음 Cache를 우회하는 direct 쓰기를 테스트합니다. 명령은 대략 다음과 같습니다.
# 第一轮:缓冲写(吃内存Cache)
fio --name=cache-test --rw=write --bs=1M --size=2G --direct=0 --ioengine=libaio --runtime=30 --time_based
# 第二轮:直写(绕Cache,直接落盘)
fio --name=direct-test --rw=write --bs=1M --size=2G --direct=1 --ioengine=libaio --runtime=30 --time_based핵심은 두 라운드 값의 '절벽 비율'을 보는 것입니다. 새로운 NVMe 클라우드 디스크는 직접 쓰기가 버퍼 쓰기의 60%~80% 수준입니다. 오래된 기계식 디스크나 공유 스토리지는 직접 쓰기가 10% 미만으로 떨어질 수 있습니다. 명목상 2000 MB/s인데 직접 쓰기가 150 MB/s에 불과하다면 전형적인 Cache 단절입니다. 데이터가 먼저 속이고, 실제 디스크에 기록될 때 바닥이 드러납니다.
이 증거 확보는 Steal Time과 함께 봐야 합니다. Steal이 높으면 이웃이 CPU를 뺏고 있다는 뜻이고, 디스크 절벽은 스토리지 채널도 병목 현상이 있음을 의미합니다. 두 증거가 겹치면 기본적으로 오버커밋으로 판정할 수 있으며, 일반적인 오버커밋이 아니라 기본 하드웨어까지 낡은 경우입니다.
FinOps 관점에서 보면 이러한 머신은 '잔존 가치'로 책정해야 합니다. 명목 구성에 해당하는 프리미엄 비율이 새 머신의 30%를 넘으면 바로 깎아야 하고, 깎을 수 없으면 교체해야 합니다. 결국 돈을 주고 사는 것은 Spec이지 Cache 위의 신기루가 아니기 때문입니다. 전체 함정 회피 체크리스트는 클라우드 서버 사양 부풀리기 자가 점검 가이드에서 확인할 수 있습니다.
프리미엄 비율과 피해야 할 결정 트리
"고클럭 구형 CPU" 클라우드 서버를 받았다고 해서 서둘러 돈을 지불하지 마라. 먼저 프리미엄 비율을 계산하라: (실제 월 비용 - 동일 구성 신형 CPU 시장 가격) / 동일 구성 신형 CPU 시장 가격. 프리미엄이 30%를 초과하면 기본적으로 퇴역 하드웨어에 대해 바보 세금을 내고 있다고 판단해도 된다. 더 강력한 방법은 FinOps 관점에서 직접 정량화하는 것이다: 같은 돈으로 2배 코어 수의 AMD EPYC 또는 3년 된 Intel을 살 수 있는가? 살 수 있다면 이 구매는 승인을 통과해서는 안 된다.
그 다음 내 3중 검증 결정 트리를 따르라:
- Steal Time으로 나쁜 이웃 잡기
vmstat 1 10 | awk '{print $17}' # 看 st 列연속 샘플링에서 st 평균이 5% 이상이거나 20% 이상의 스파이크가 나타나면 호스트 과매도가 심각하고 CPU 시간이 이웃에게 도난당한 것이므로 사양을 낮추는 것이 유일한 손절 방법이다.
- 디스크 Cache 절벽 테스트
dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync첫 번째 쓰기에서는 캐시로 인해 1.5GB/s가 나오지만, 두 번째에서는 150MB/s로 곤두박질친다. 즉 캐시가 빠진 뒤의 실체를 보여주는, 전형적인 공유 스토리지 과매도다. 구형 구성 + 디스크 절벽 = 이중 허위 표기.
- 실제 벤치마크 비교
curl -sL yabs.sh | bash싱글 코어 Geekbench 5 점수가 700보다 낮은데 표시 클럭이 3.5GHz인가? 그렇다면 이 보고서를 들고 고객 서비스에 가서 4코어 신형 CPU와의 차액 환불 또는 마이그레이션을 요구하라.
마지막으로 하나의 엄격한 규칙을 제시한다: 어떤 홍보 페이지가 "고성능"이라고 표시하지만 판매 전에 실제 벤치마크 링크를 제공하지 않는다면, 모두 구성 허위 표기로 처리한다. 벤치마크는 자신만 믿고, 프리미엄은 새 CPU에만 지불하라.
FAQ
클라우드 서버 CPU가 오래된 것인지 어떻게 식별하나요?
cat /proc/cpuinfo 명령으로 모델을 확인하고 출시 연도를 비교하세요. 또한 Steal Time을 모니터링하여 steal이 높으면 오버셀링을 의미하며 오래된 CPU 성능이 더 나쁩니다.
구성 과장 시 실제 성능을 어떻게 검증하나요?
sysbench로 CPU 테스트를 실행하고 공식 벤치마크 점수와 비교하세요. 동시에 디스크 캐시와 IOPS를 확인하세요. 노후된 디스크는 실제 벤치마크 점수를 낮춥니다.