서론
최근 클라우드 컴퓨팅 시장에서 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): "저 위치로 이동하라"는 하나의 통합된 명령을 내리며, 내부적으로 이를 해석하여 실행합니다.