ARM 및 X86 아키텍처 클라우드 서버 CPU 연산 성능 비교

서론

최근 클라우드 컴퓨팅 시장에서 ARM 아키텍처 기반의 서버 도입이 활발해지고 있습니다. 전통적인 X86 아키텍처와 새로운 대안으로 떠오르는 ARM 간의 성능 차이에 대해 궁금해하는 사용자가 많습니다. 본 아티클에서는 동일한 사양의 X86 및 ARM 클라우드 서버를 대상으로 정수 연산과 부동 소수점 연산 성능을 직접 비교 분석합니다.

테스트 도구 설치

1. Sysbench (정수 연산 테스트)

CPU의 정수 처리 능력을 측정하기 위해 널리 사용되는 Sysbench를 설치합니다.
# 필수 의존성 설치
sudo yum install -y automake libtool gcc make

# 소스 코드 다운로드 및 압축 해제
curl -L https://github.com/akopytov/sysbench/archive/1.0.20.tar.gz -o sysbench-1.0.20.tar.gz
tar -zxvf sysbench-1.0.20.tar.gz

# 빌드 및 설치
cd sysbench-1.0.20
./autogen.sh
./configure --without-mysql
make -j $(nproc)
sudo make install

# 설치 확인
sysbench --version

2. Unixbench (부동 소수점 연산 테스트)

시스템의 전반적인 성능과 특히 부동 소수점 연산 성능을 확인하기 위해 Unixbench를 준비합니다.
# Unixbench 다운로드
wget http://soft.vpser.net/test/unixbench/unixbench-5.1.2.tar.gz
tar -xzvf unixbench-5.1.2.tar.gz
cd unixbench-5.1.2

# GUI 테스트가 필요 없는 경우 Makefile에서 GRAPHICS_TEST 설정 주석 처리
# perl 의존성 설치
sudo yum install -y perl

# 테스트 실행 준비
make

테스트 환경 구성

비교의 형평성을 위해 두 서버 모두 동일한 가상 머신 규격으로 설정하였습니다.
  • 공통 규격: 8 vCPU, 32GB RAM, 2TB Disk
  • X86 서버 CPU: Intel(R) Xeon(R) Silver 4114 @ 2.20GHz
  • ARM 서버 CPU: Phytium FT-2000+/64 @ 2.2GHz

정수 연산 성능 테스트 결과

Sysbench를 사용하여 20,000까지의 소수(Prime Number)를 계산하는 8스레드 테스트를 60초간 수행했습니다.

X86 결과

초당 이벤트 처리 수(Events per second): 2813.42

sysbench cpu --cpu-max-prime=20000 --threads=8 --time=60 run

ARM 결과

초당 이벤트 처리 수(Events per second): 7077.50

sysbench cpu --cpu-max-prime=20000 --threads=8 --time=60 run

분석

정수 연산 테스트 결과, ARM 아키텍처 서버가 X86 서버에 비해 약 2.5배 높은 성능을 기록했습니다. 이는 단순 반복 연산이 많은 작업에서 ARM의 효율성이 뛰어남을 보여줍니다.

부동 소수점 연산 성능 테스트 결과

Unixbench의 'Double-Precision Whetstone' 항목을 통해 정밀도 높은 부동 소수점 연산 능력을 측정했습니다.

X86 결과

  • 1 스레드: 3946.1 MWIPS
  • 8 스레드: 31546.4 MWIPS

ARM 결과

  • 1 스레드: 3626.3 MWIPS
  • 8 스레드: 28926.4 MWIPS

분석

부동 소수점 연산에서는 ARM 서버가 X86 서버 성능의 약 92% 수준을 나타냈습니다. 정수 연산만큼의 압도적인 차이는 없으나, 범용적인 컴퓨팅 환경에서 충분히 경쟁력 있는 수치입니다.

기술적 배경 및 참고 사항

정수 연산에서 ARM이 우세한 이유

이는 ARM과 X86의 명령어 집합(Instruction Set) 차이에서 기인합니다. ARM은 RISC(Reduced Instruction Set Computer) 구조를 채택하여 단순한 명령어를 빠르게 처리하는 데 최적화되어 있습니다. 반면 X86은 CISC(Complex Instruction Set Computer) 구조로, 복잡한 명령 처리에 강점이 있지만 단순 연산 효율은 상대적으로 낮을 수 있습니다.

명령어 집합의 차이 비유

예를 들어 '특정 위치로 이동'이라는 작업을 수행할 때:
  • RISC (ARM): "일어선다", "앞으로 걷는다", "정지한다"와 같이 세분화된 명령을 매우 빠르게 내립니다.
  • CISC (X86): "저 위치로 이동하라"는 하나의 통합된 명령을 내리며, 내부적으로 이를 해석하여 실행합니다.

소프트웨어 호환성

ARM과 X86은 아키텍처가 다르므로 컴파일된 바이너리 파일이 서로 호환되지 않습니다. 따라서 소프트웨어를 설치할 때 해당 아키텍처 전용 패키지를 선택하거나 소스 코드를 직접 컴파일하여 사용해야 합니다. 최근 대부분의 오픈 소스 및 엔터프라이즈 소프트웨어는 두 아키텍처를 모두 지원하는 추세입니다.

태그: ARM x86 CPU-Benchmark Sysbench Unixbench

8월 5일 16:34에 게시됨