서버 성능 측정하기 (CPU·디스크)
플랜끼리, 또는 VPS와 단독서버를 비교할 때 같은 방법으로 직접 재보면 판단하기 쉽습니다. Linux(Ubuntu·Debian) 기준입니다.
측정하는 동안 CPU와 디스크를 최대로 씁니다. 이미 서비스가 돌고 있는 서버라면 사용자가 적은 시간에 하세요.
CPU: 코어 하나와 전체 코어
sudo apt install -y sysbench
sysbench cpu --threads=1 --time=10 run
sysbench cpu --threads=$(nproc) --time=10 run
결과의 events per second가 클수록 빠릅니다.
--threads=1— 코어 하나의 성능입니다. 마인크래프트 서버처럼 코어 하나가 중요한 프로그램이라면 이 숫자를 비교하세요.--threads=$(nproc)— 모든 코어를 함께 쓴 성능입니다. 여러 프로그램을 돌리거나 작업을 나눠 처리하는 경우라면 이 숫자를 비교하세요.
어떤 프로그램이 어느 쪽에 해당하는지는 싱글코어? 멀티코어?를 참고하세요.
sysbench는 단순한 계산을 반복하는 테스트라 실제 프로그램의 성능과 똑같지는 않습니다. 서버끼리 같은 명령으로 비교하는 용도로 쓰세요.
디스크
간단히: 쓰기 속도
dd if=/dev/zero of=dd-test.tmp bs=1M count=1024 oflag=direct status=progress
rm dd-test.tmp
마지막 줄 끝의 속도(MB/s 또는 GB/s)가 큰 파일을 연속으로 쓰는 속도입니다.
자세히: 작은 파일 읽기·쓰기
데이터베이스나 게임 월드 저장처럼 작은 데이터를 자주 읽고 쓰는 일은 아래 테스트가 더 잘 보여줍니다.
sudo apt install -y fio
fio --name=test --filename=fio-test.tmp --size=1G --rw=randrw --rwmixread=70 --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --runtime=30 --time_based --group_reporting
rm fio-test.tmp
read: IOPS=…,write: IOPS=…— 1초에 처리한 읽기·쓰기 횟수입니다. 클수록 좋습니다.BW=— 초당 처리량입니다.
두 테스트 모두 측정용 파일(1GB)을 만드니 디스크에 여유 공간이 있어야 하고, 끝나면 꼭 rm으로 지워주세요.
네트워크 속도 측정은 주의하세요
속도 측정 도구는 큰 데이터를 주고받기 때문에 트래픽을 씁니다.
- 일반 네트워크는 하루 트래픽 할당량을 넘으면 그날 남은 시간 동안 속도가 제한됩니다.
- 보안 네트워크는 주문할 때 정한 트래픽 용량을 쓰는 방식이라, 테스트로 써버리면 추가 구매가 필요할 수 있습니다.
게임이나 접속이 느린 이유를 확인하는 것이 목적이라면, 내 PC에서 서버까지의 응답 시간(핑)을 재보는 것으로 충분한 경우가 많습니다.
ping 서버IP
Windows는 명령 프롬프트, Mac·Linux는 터미널에서 실행합니다. (Mac·Linux는 Ctrl + C로 멈춥니다) Windows 서버는 기본 방화벽 설정 때문에 ping에 응답하지 않을 수 있습니다.
결과를 비교할 때
- 같은 명령을 두세 번 재서 비슷한 값인지 확인하세요. VPS는 물리 서버를 함께 쓰는 구조라 잴 때마다 결과가 조금씩 다를 수 있습니다.
- 비교할 서버끼리 운영체제와 명령을 똑같이 맞춰야 의미가 있습니다.
- 숫자보다 중요한 것은 실제 프로그램이 잘 돌아가는지입니다. 사용률을 확인하는 방법은 서버가 느릴 때 점검하기를 참고하세요.