본문 바로가기

Database/MySQL

SYSBENCH 를 이용하여 RDS MySQL, RDS Aurora, GCP Cloud SQL MySQL OLTP 테스트 2차

개요

1차 테스트에서 rds-mysql 이 탈락하고 아래와 같은 이유로 2차 테스트를 진행함

  • transaction 성능은 aurora 가 좋지만 bulk insert 에서 aurora가 gcp 보다 느린 이유는?
  • aurora 의 disk 성능이 타 서비스와 비교해서 동등한가? 확인가능 한가?

 

테스트 내용

sysbench 의 oltp_read_write 시나리오는 dml 이 혼합된 형태인데 위 transaction 이 select 에 포함되어 있는지 등이 

불명확하며 wirte 의 구성도 delete1:update:2:insert1 로 되어 있기 때문에 transaction 수치와 bulk-insert 수치를 동등하게 비교할 수 없다.

 

따라서 insert, update, select, delete 로 시나리오를 구분해서 테스트를 진행한다.

 

테스트 목록

catpredefined lua file

insert oltp_insert.lua
update oltp_update_index.lua
select oltp_read_only.lua
delete oltp_delete.lua

 

테스트 시나리오

  • 클라이언트 1 ~ 128 까지 반복
    • prepare
    • insert
    • update
    • select
    • delete
    • cleanup

테스트 결과

cpu

cpu 사용량은 sql 의 타입에 따라 조금씩 다르지만 client 의 갯수를 기준으로 최대값을 대표값으로 한다.

앞서 결과에서처럼 client 의 갯수가 올라갈 수록 내부에서의 병목으로  cpu 사용에 대한 효율이 낮아 진다고 판단된다.

-18163264128graphrds-auroragcp-mysql

 

mem

aurora 의 경우 메모리 64기가 중에서 44기가를 innodb_buffer_pool 로 사용하면

테스트를 진행하다보면 free 메모리는 9기가 정도 이며 계속 유지된다. 이결과의 의미는

buffer 에 의해 cache 이 99% 수렴되고 있으며 이를 벗어 나기 위해서는 메모리를 초과하는

대형 테스트가 필요하다. 

 

gcp mysql 의 경우 free 메모리를 확인할 수 없으며 사용된 메모리도 4.7 기가 정도로 유지되었다.

innodb_buffer_pool 의 경우 52기가 중 40기가를 사용한다.

insert 

상기 bulk insert 를 병렬처리되는 single row insert (scalar) 가 아닌 multi row insert( relation ) 이므로 아래 테스트와

성격이 다르며, 별도의 결과로 봐야 한다. 소스 확인 결과이며 1차 테스트에서 확인을 하지 못함.

average 1 8 16 32 64 128
rds-aurora 2.25 4.43 5.03 5.71 6.85 8.96
gcp-mysql 4.42 10.18 12.01 12.9 33.88 25.77

99th-tile 1 8 16 32 64 128
rds-aurora 3.19 8.9 7.84 14.21 21.11 29.19
gcp-mysql 6.91 22.28 29.19 27.66 55.82 45.79

update

average 1 8 16 32 64 128
rds-aurora 0.25 0.39 0.51 6.48 8.35 11.14
gcp-mysql 0.11 0.14 0.17 0.37 0.53 35.67

99th-tile 1 8 16 32 64 128
rds-aurora 0.58 0.95 4.33 21.89 33.12 34.33
gcp-mysql 0.28 0.26 0.43 2 1.93 62.19

select

average 1 8 16 32 64 128
rds-aurora 2.3 3.04 3.61 7.83 14.31 26.15
gcp-mysql 1.79 2.13 2.8 3.76 7.52 33.65

99th-tile 1 8 16 32 64 128
rds-aurora 2.86 4.03 4.91 20.74 46.63 63.32
gcp-mysql 2.61 3.25 4.91 6.55 14.21 44.17

delete

average 1 8 16 32 64 128
rds-aurora 0.24 0.39 0.47 0.99 1.45 2.7
gcp-mysql 0.11 0.13 0.16 0.36 0.49 3.18

 

99th-tile 1 8 16 32 64 128
rds-aurora 0.57 0.97 3.49 9.73 18.61 42.61
gcp-mysql 0.28 0.23 0.31 1.89 1.55 59.99