본문 바로가기

Database/MySQL

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

개요

RDS Aurora vs RDS MySQL vs  Cloud SQL MySQL 를 sysbench 를 이용하여 성능을 측정한다.

hardware 는 8core ram 64GB spec 으로 별도의  client 를 통해 ( 각 cloud vm instance ) 테스트하였다.

 

client 는 sysbench 의 옵션을 이용하여 1, 8, 16, 32, 64, 128 까지 늘려가며 수행했으며

테스트 시나리오는 sysbench 에 정의된 'oltp_read_write.lua'  와 'bulk_insert.lua' 를 사용했다.

 

oltp_read_write test script

f [ "$#" -ne 4 ];

then

    echo  "Usage : sysbench.sh <thread_cnt> <row_cnt> <table_cnt> <op_type(prepare,run,cleanup)>"

    exit 255

fi





HOST=10.92.0.3

PORT=3306

USER=test

PASS=test

DB=test

WARM_SEC=5

THREAD_CNT=$1

ROW_CNT=$2

TABLE_CNT=$3

OP_TYPE=$4

RUN_TIME=120

LUA_PATH=/home/cloud_softwiz/workspace/sysbench/share/sysbench





CMD="

sysbench \

--time=$RUN_TIME \

--percentile=99 \

--histogram \

--mysql-host=$HOST  \

--mysql-port=$PORT  \

--mysql-user=$USER  \

--mysql-password=$PASS  \

--mysql-db=$DB \

--warmup-time=$WARM_SEC \

--threads=$THREAD_CNT \

--table-size=$ROW_CNT \

--tables=$TABLE_CNT \

$LUA_PATH/oltp_read_write.lua \

$OP_TYPE"



echo -e $CMD



sysbench \

--time=$RUN_TIME \

--percentile=99 \

--histogram \

--mysql-host=$HOST  \

--mysql-port=$PORT  \

--mysql-user=$USER  \

--mysql-password=$PASS  \

--mysql-db=$DB \

--warmup-time=$WARM_SEC \

--threads=$THREAD_CNT \

--table-size=$ROW_CNT \

--tables=$TABLE_CNT \

$LUA_PATH/oltp_read_write.lua \

$OP_TYPE

 

bulk insert test script

f [ "$#" -ne 2 ];

then

    echo  "Usage : sysbulk.sh <thread_cnt> <op_type(prepare,run,cleanup)>"

    exit 255

fi





HOST=10.92.0.3

PORT=3306

USER=test

PASS=test

DB=test

WARM_SEC=10

THREAD_CNT=$1

OP_TYPE=$2





CMD="

sysbench \

bulk_insert \

--time=120 \

--percentile=99 \

--histogram \

--mysql-host=$HOST  \

--mysql-port=$PORT  \

--mysql-user=$USER  \

--mysql-password=$PASS  \

--mysql-db=$DB \

--warmup-time=$WARM_SEC \

--threads=$THREAD_CNT \

bulk_insert

$OP_TYPE"



echo -e $CMD



sysbench \

bulk_insert \

--time=120 \

--percentile=99 \

--histogram \

--mysql-host=$HOST  \

--mysql-port=$PORT  \

--mysql-user=$USER  \

--mysql-password=$PASS  \

--mysql-db=$DB \

--warmup-time=$WARM_SEC \

--threads=$THREAD_CNT \

$OP_TYPE

 

성능

 

oltp average

  1 8 16 32 64 128
rds-mysql 21.34 40.14 79.48 150.58 202.04 331.53
rds-aurora 13.27 16.54 19.12 25.02 40.65 72.33
gcp-mysql 12.59 17.06 30.17 54.04 90.89 120.77

oltp 99th pecentile

  1 8 16 32 64 128
rds-mysql 54.83 404.61 1280.93 1903.57 2728.81 4437.27
rds-aurora 18.95 29.19 32.53 39.65 59.99 108.68
gcp-mysql 21.5 38.25 108.68 204.11 282.25 363.18

oltp transaction

  1 8 16 32 64 128
rds-mysql 46 199 201 210 312 386
rds-aurora 75 483 836 1279 1574 1769
gcp-mysql 79 468 530 591 704 1060

bulk insert

  1 8 16 32 64 128
rds-mysql 0.01 0.03 0.07 0.15 04 1.14
rds-aurora 0.01 0.04 0.07 0.16 0.44 1.25
gcp-mysql 0. 0.02 0.04 0.09 0.19 0.39