프로그램개발/Linux(Apache.vim)

서버 성능측정 (벤치마크 방법)

크레도스 2018. 9. 20. 16:40

출처 : https://blog.lael.be/post/4279


Ubuntu 기준. Windows 는 Novabench(https://novabench.com/) 를 사용하도록 하자.
벤치마크 점수에 너무 신경쓰지 말아야 한다. 점수는 점수일 뿐 당신의 체감 속도가 가장 중요하다.

아래 스크린샷은 라엘이가 개인용도로 사용하고 있는 직접 구축한 클라우드 서버에서 Sysbench 를 실행한 것이다.
가상 서버는 Hyper-V 기반이며, 6코어 5GB RAM, 100GB SSD 사양이다.
# 제 서버를 기준 지표로 설정하지 마시고, https://blog.lael.be/post/44 의 업체를 기준 지표로 삼으세요.
vx1

0. 대조군 설정

당신이 이미 서버를 운영하고 있는 상태에서 이 글을 읽는다고 가정한다.
빠른 서버에 대한 느낌은 직접 사용해야 알 수 있다.
당신의 서버와 비교할 대조군을 설정한다.

VULTR 클라우드서비스 (https://www.vultr.com/)에 가입후 도쿄 또는 싱가포르 지역에 자신의 서버와 동일사양인 서버를 추가해보자.
그 후 아래 명령어로 비교해 보면 된다. 시간단위 과금이니 테스트 후 지우면 된다.

 

클라우드서버 비교 글에서는 [대조군설정]을 위해 모두 [4코어 4GB] 환경에서 [1 thread] 로 테스트 하였습니다.

 

1. 벤치마크 프로그램 설치

apt-get install sysbench

 

2. CPU 테스트

Ubuntu 16.04 및 그 이전 버전

sysbench --test=cpu --cpu-max-prime=20000 run

Ubuntu 18.04 에서는 다음의 명령을 실행하세요.

sysbench cpu --events=10000 --cpu-max-prime=20000 --time=0 run

j2

total time 을 계산한 후 100을 곱한다.

22.3451s -> 2234점 (걸린 시간이기 때문에 낮을 수록 좋다.)

 


위의 테스트는 동일한 사양일 때 어느 CPU 가 더 고성능인지 확인하는 방법이고, 아래의 방법은 비교하기 애매한 상황일때 확인하는 방법입니다.

예를 들어) A 업체의 2코어 6GB 서버와, B 업체의 4코어 4GB 서버 비교할 때에는 같은 조건이 아니므로 아래의 테스트를 진행하시기 바랍니다.

 

현재 (가상)서버의 CPU 코어수 확인

cat /proc/cpuinfo | grep CPU | wc -l

코어를 다 사용했을 때 속도 확인 (위 명령어에서 출력된 숫자를 threads 에 적어줍니다)

sysbench cpu --events=10000 --cpu-max-prime=20000 --time=0 --threads=6 run

양쪽 서버에서 실행 후 숫자를 비교하시면 됩니다. (숫자가 작을 수록 좋음)

 

3. 메모리 테스트

Read Test
sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=read run

j1

2779점

Write Test
sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write run

j3

2312 점

두개의 속도(MB/sec) 를 더한다.

대충 1500 MB/sec ~ 2500 MB/sec 사이로 결과가 나올 것이다. (Read 가 더 크게 나옴)

2779 MB/sec Read + 2312 MB/sec Write = 5091점 (단위 속도이기 때문에 높을 수록 좋다.)

4. 디스크 테스트

테스트 파일 설정 (반드시 램 크기보다 큰 용량으로 설정할 것)

sysbench --test=fileio --file-total-size=8G prepare

64MB 파일 128개가 생길 것이다.

sysbench --test=fileio --file-total-size=8G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

300초 동안 매우 많은 랜덤 I/O 를 할 것이다.

j4

단위 속도에 100을 곱하여 점수를 측정한다.

37.885Mb/sec -> 3788점 (단위 속도이기 때문에 높을 수록 좋다.)

테스트가 끝났으면 테스트 파일 지우기

sysbench --test=fileio --file-total-size=8G cleanup

아까 생성했던 64MB 파일 128개가 삭제된다.

 


서버의 위치 추정하기.

대형 클라우드의 경우 IP 를 대량으로 할당받아 관리한다. 즉 whois 에서는 미국에 할당된 IP 라고 나오지만, 실제로는 한국이나 일본에 위치한 서버의 IP 일 경우가 있다.

이 경우, 여러 국가 위치에서 직접 접속 속도를 측정하여 위치를 추정해 볼 수 있다.

테스트 포트가 외부에서 접근 가능해야 한다. (방화벽 Public Open)

http://ipconfig.tools/ko/ping 이동.

도메인주소 또는 IP주소, 포트번호 (웹: 80, SSH: 22, FTP:21) 입력 후 PING!

>> 한국에서 접속하는 google 사이트의 서버는 일본에 위치하고 있음을 알 수 있다.

>> 172.217.26.46 아이피를 whois 조회하면 미국아이피 라고 나온다. 하지만 위의 결과와 같이 일본에서 사용중임을 알 수 있다.