테스트 환경
computer : macbook pro
cpu : m1
ram : 16gb
ssd : 512gb
sysbench version: 1.0.20
cf. 테스트 결과 분석 키워드
total time: 테스트가 실행된 총 시간
total number of events: 테스트 동안 발생한 총 이벤트 수
Latency: 이벤트를 처리하는데 걸린 평균 시간
Threads fairness: 스레드 공정성(모든 스레드가 균일하게 이벤트를 처리했음을 보여주는 지표)
1. sysbench 설치
mac 환경에서는 brew를 통해 sysbench를 설치할 수 있다.
brew install sysbench
sysbench --version
2. CPU 테스트
1초 당 처리된 이벤트(계산) 수
: 8,016,426.01
sysbench --test=cpu --cpu-max-prime=20000 run
3. 메모리 테스트
1초 당 메모리에 수행된 총 작업(쓰기) 개수: 5,595,251.01
1초 당 메모리에 전송된 데이터 크기: 5,464.11 Mib
sysbench --test=memory run
4. 디스크 I/O 테스트
1) 테스트 데이터 준비 (20GB)
→ RAM이 테스트 데이터를 모두 캐시할 수 있으므로, 실제 환경과 유사하게 현재 컴퓨터의 RAM보다 큰 파일을 사용하여 테스트를 진행
sysbench --test=fileio --file-total-size=20G prepare
2) 디스크 I/O 테스트 실행
sysbench --test=fileio --file-total-size=20G --file-test-mode=rndrw run
1초 당 파일 작업 수
reads: 7744.35
writes: 5162.83
fsyncs: 16522.34 (디스크에 안전하게 저장하기 위해 호출하는 작업)
1초당 처리량
read: 121.01 Mib
written: 80.67 Mib
10초동안 처리된 총 이벤트 수
reads / writes / fsyncs: 294211
5. 테스트 종료
prepare을 통해 생성된 모든 파일을 삭제한다.
sysbench --test=fileio --file-total-size=20G cleanup
6. 마무리
sysbench 벤치마크를 하면서, cpu / memory / disk io 에서 어떻게 벤치마크가 진행되는지 플로우를 파악할 수 있었다. 추후에 DB 성능 테스트를 하거나, dummy 테스트 데이터를 만들 때 disk io 테스트 진행 스크립트를 사용해도 좋을 것 같다🧐
한 가지 아쉬운 점은 OpenBenchmarking 사이트에서 현재 테스트 결과와의 성능 비교를 위해 여러 벤치마크 지표를 봤지만, 오차범위가 매우 커 유의미한 비교를 하지는 못했다.
https://openbenchmarking.org/test/pts/sysbench
'TIL' 카테고리의 다른 글
애플 소셜 로그인 (with. Spring) (1) | 2024.11.05 |
---|---|
OAuth 2.0 개념, 동작 과정 이해 (1) | 2024.10.31 |
템플릿 메소드 패턴 vs. 전략 패턴 (0) | 2024.07.14 |