[성능 테스트] sysbench 내 서버 성능을 보자 (for mac or linux)
sysbench는 인텐시브한 로드에서 데이터베이스를 운영해야하는 시스템에 필요한 운영체제를 평가하는 모듈화된 크로스 플랫폼 멀티 쓰레드 벤치마크 도구이다.
데이터베이스를 설치하지 않고도 복잡한 세팅없이 시스템 성능을 분석할 수 있다.
제공하는 기능은 다음과 같다.
- 파일 입출력 성능
- 스케쥴러 성능
- 메모리 할당 및 전달 속도
- POSIX 쓰레드 구현 성능
- 데이터베이스 서버 성능
sysbench로 진행한 서버 성능 테스트 과정을 정리해본다.
#1 sysbench 설치
linux
1 | apt-get install sysbench | cs |
mac
1 | brew install sysbench |
#2 CPU 테스트
1 | sysbench --test=cpu --cpu-max-prime=20000 run | cs |
total time 계산 후 100을 곱하면 점수가 나온다 (낮을 수록 좋다)
#3 메모리 테스트
read test
1 | sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=read run | cs |
write test
1 | sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write run | cs |
read + write = total (높을 수록 좋다)
3431+3032 = 6463 점
#4 디스크 테스트 (램 크기보다 큰 용량으로 설정을 해야 한다)
1 2 | sysbench --test=fileio --file-total-size=8G prepare sysbench --test=fileio --file-total-size=8G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run | cs |
1번줄은 테스트용 더미파일을 생성한다. 64MB 파일 128개 (8G)가 생성되었다.
2번줄 명령으로 300초동안 많은 랜덤 I/O를 한다.
점수는 높을 수록 좋다
테스트 완료후 생성한 더미파일을 지운다
1 | sysbench --test=fileio --file-total-size=8G cleanup | cs |
맥프로 램 8G로 테스트를 했을 때와
스쿨호스팅에서 구매한 일반형가상서버 호스팅 (램 1G, 하드 40G) 테스트 했을 때를 비교해보았다.
|
8G 맥 |
1G 가상 서버 호스팅 리눅스 서버 | 비교 |
CPU |
2826 점 |
7396 점 | 약 2.6배 차이 |
Memory Read |
3432 점 |
1107 점 | 약 3.1배 차이 |
Memory Write |
3032 점 |
1623 점 | 약 1.8배 차이 |
Disk I/O |
10331 점 |
298 점 | 약 34.7배 차이 |
메모리가 1G < 8G 차이인 것에 비해 메모리 성능 차이는 최대 3배의 차이를 보이는 반면 디스크 입출력 성능에서 어마어마한 차이를 보이고 있다.
쓰레드 테스트 등 추가적인 sysbench 지원 테스트는 아래 참고문헌의 매뉴얼을 확인해보자.
참고 문헌
sysbench 깃헙, https://github.com/akopytov/sysbench
sysbench 매뉴얼, http://imysql.com/wp-content/uploads/2014/10/sysbench-manual.pdf