ScyllaDB의 Benchmark 따라하기 2

지난 포스팅에서는 VirtualBox를 통해서 ScyllaDB와 Cassandra의 성능을 테스트해보았다. 결과에서 ScyllaDB 홈페이지에서 주장하던 10배의 성능 향상을 볼 수는 없었다. 몇가지 조건은 오히려 ScyllaDB쪽에 불리한 것도 있었기 때문에 이번에는 사내에 있는 개발장비에서 성능테스트를 진행해봤다. 사내에서 테스트에 활용할 수 있는 개발장비는 다행히 3대가 있었다.


사내에는 남는 개발장비가 3대 있다. 시스템 사양은 각각 다음과 같다.

DB서버(ScyllaDB/Cassandra)

  • CPU : 4 Core
  • 메모리 : 16G
  • HDD : 128G SSD
부하 테스트 서버
  • CPU : 2 Core
  • 메모리 : 16G
  • HDD : 250G SSD
1) 쓰기 테스트
쓰기 테스트에 사용한 명령은 앞서 진행했던 VirtualBox 테스트에 사용한 명령어와 동일하다.
cassandra-stress write duration=10m -mode native cql3 -rate threads=700 -node $SERVER

사내 개발장비에서 성능테스트를 한 결과는 다음과 같다. 
ScyllaDB 평균 TPS : 56191

Cassandra 평균 TPS : 58621

오히려 Cassandra가 더 좋은 성능을 보여주고 있다.


2) 읽기 테스트

VirtualBox 테스트와 마찬가지로 데이터를 먼저 채워넣은 후 읽기 테스트를 진행했다.

읽기 테스트는 다음의 명령은 다음과 같다.

cassandra-stress mixed 'ratio(read=1)' duration=10m -pop 'dist=gauss(1..10000000,5000000,500000)' -mode native cql3 -rate threads=700 -node $SERVER

결과는 다음과 같다.

ScyllaDB 평균 TPS : 47363

Cassandra 평균 TPS : 56500

읽기에서도 오히려 Cassandra가 더 좋은 성능을 보여주고 있다.


3) 읽기/쓰기 테스트

테스트에 사용한 명령은 다음과 같다.

cassandra-stress mixed 'ratio(read=1,write=1)' duration=10m -pop 'dist=gauss(1..10000000,5000000,500000)' -mode native cql3 -rate threads=700 -node $SERVER

결과는 다음과 같다.

ScyllaDB 평균 TPS

   읽기 : 25183, 쓰기 : 25146

Cassandra 평균 TPS

   읽기 : 27023, 쓰기 : 27038


결과를 종합해서 살펴보면 다음과 같다.

 

 ScyllaDB

Cassandra 

쓰기

56191

58621

읽기

47363

56500

읽기/쓰기 

 25183/25146

27023/27038 

<표 1. 사내 개발장비에서의 benchmark결과>

테스트 결과 ScyllaDB가 말하는 "Cassandra보다 10배 빠르다"는 확인할 수 없었다. 오히려 Cassandra보다 떨어지는 성능을 보여주고 있었다.

그런데 이번 테스트에서는 ScyllaDB 홈페이지에서 진행한 것 처럼 여러대의 Client에서 부하를 준 것이 아니라 한대의 시스템에서만 부하를 준 것이다. 이번 결과로 확인할 수 있었던 것은 그럭저럭한 사양의 시스템에서 그리 많지 않은 수준의 Request가 들어오는 경우에는 Cassandra가 더 빠를 수 있다는 것이다.

사내 개발장비에서는 여러대의 클라이언트에서 부하를 주는 등의 테스트 진행이 불가능하기 때문에 다음번 포스트에서는 아마존 AWS에서 테스트를 진행해보도록 할 계획인다.

Posted by micacute