本文介紹RDS MySQL 8.0通用型實例的性能測試結果。
為了更接近生產環境,本次壓測取60秒的讀寫次數總量(Reads/Writes)作為測試指標。
以下性能測試結果僅供參考。為了幫助您更好地了解和使用RDS MySQL 8.0版本實例,請參見性能優化與診斷。
根據業務場景的不同,RDS MySQL 8.0的測試結果可能會低于RDS MySQL 5.7,屬于正常現象。
測試環境
本次壓測采用業界標準的SysBench,分別對RDS MySQL的5個本地盤規格進行性能測試。
實例規格:rds.mysql.t1.small、rds.mysql.s2.large、rds.mysql.m1.medium、rds.mysql.c1.xlarge、rds.mysql.c2.xlarge
實例規格族:通用型
實例系列:高可用系列
實例存儲類型:本地盤
測試限制
由于數據量、壓測時長、參數配置會大幅影響性能數據,本測試做如下限制:
數據量:對不同實例規格配置不同的表個數和表數據量。部分規格看似測試結果相近,其實是整體數據量不同。
壓測時長:由于不同壓測時長對測試結果影響較大,因此本次壓測時長統一為60秒。
參數配置:
sync_binlog=1
、innodb_flush_log_at_trx_commit=1
:確保每次提交的數據完整寫入磁盤中。rpl_semi_sync_master_enabled=ON
:開啟數據庫半同步模式,保證主備庫數據的一致性。Performance_schema=ON
:內存大于等于8 GB的實例規格默認開啟Performance Schema。說明上述參數為RDS MySQL標準參數模板,統一參數模板可在最大程度上保證數據一致性,同時更加接近生產環境。
測試結果
本次壓測分兩個場景進行,您可以根據自身數據量判斷使用哪種場景。
內存命中型:適用于數據量較小的場景,可將數據全量放入Buffer Pool進行存取。如何更改Buffer Pool大小,請參見調整實例Buffer Pool大小。
磁盤I/O型:適用于數據量大的場景,只將最常訪問的數據放入Buffer Pool進行存取,壓測時會讀寫磁盤以及更新Buffer Pool。
場景一:內存命中型
規格 | 單表數據量 | 表數量 | 最大連接數 | IOPS | Sysbench線程數 | Sysbench讀取 (單位:次) | SysBench寫入 (單位:次) |
1核1 GB (rds.mysql.t1.small) | 25000 | 32 | 300 | 600 | 8 | 432922 | 123692 |
2核4 GB (rds.mysql.s2.large) | 25000 | 32 | 1200 | 2000 | 8 | 599606 | 171316 |
4核16 GB (rds.mysql.m1.medium) | 25000 | 128 | 4000 | 7000 | 16 | 1567132 | 447752 |
8核32 GB (rds.mysql.c1.xlarge) | 25000 | 128 | 8000 | 12000 | 32 | 2923130 | 835180 |
16核64 GB (rds.mysql.c2.xlarge) | 25000 | 128 | 16000 | 14000 | 64 | 5661264 | 1617504 |
場景二:磁盤I/O型
規格 | 單表數據量 | 表數量 | 最大連接數 | IOPS | Sysbench線程數 | Sysbench讀取 (單位:次) | SysBench寫入 (單位:次) |
1核1 GB (rds.mysql.t1.small) | 80000 | 32 | 300 | 600 | 8 | 374584 | 107024 |
2核4 GB (rds.mysql.s2.large) | 80000 | 32 | 1200 | 2000 | 8 | 439418 | 125548 |
4核16 GB (rds.mysql.m1.medium) | 800000 | 128 | 4000 | 7000 | 16 | 851326 | 243236 |
8核32 GB (rds.mysql.c1.xlarge) | 800000 | 128 | 8000 | 12000 | 32 | 2384256 | 681216 |
16核64 GB (rds.mysql.c2.xlarge) | 800000 | 128 | 16000 | 14000 | 64 | 4584090 | 1309740 |