本功能为性能性能模块的功能之一,2020/08/28 以后发布的性能测试模块(benchmark)支持。
2020-08-28 16:18:05 准备运行 Sysbench 测试目标MySQL 服务器 127.0.0.1:3306, 16 线程, 测试时长 300 秒 2020-08-28 16:18:05 创建数据库... 2020-08-28 16:18:05 生成测试数据.. 10 个表, 每个表 1 万条数据 2020-08-28 16:18:06 开始运行测试... 2020-08-28 16:23:07 测试完成 [ 270s ] thds: 16 tps: 537.54 qps: 10767.89 (r/w/o: 7540.63/2151.18/1076.09) lat (ms,95%): 44.17 err/s: 1.00 reconn/s: 0.00 [ 280s ] thds: 16 tps: 521.60 qps: 10444.40 (r/w/o: 7312.10/2088.60/1043.70) lat (ms,95%): 46.63 err/s: 0.50 reconn/s: 0.00 [ 290s ] thds: 16 tps: 539.60 qps: 10800.23 (r/w/o: 7562.52/2157.61/1080.10) lat (ms,95%): 44.17 err/s: 0.90 reconn/s: 0.00 [ 300s ] thds: 16 tps: 511.28 qps: 10234.64 (r/w/o: 7163.75/2048.33/1022.56) lat (ms,95%): 49.21 err/s: 0.40 reconn/s: 0.00 SQL statistics: queries performed: read: 2214464 write: 632165 other: 316172 total: 3162801 transactions: 157996 (526.57 per sec.) queries: 3162801 (10541.01 per sec.) ignored errors: 180 (0.60 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 300.0452s total number of events: 157996 Latency (ms): min: 6.38 avg: 30.38 max: 104.14 95th percentile: 45.79 sum: 4799469.26 Threads fairness: events (avg/stddev): 9874.7500/24.81 execution time (avg/stddev): 299.9668/0.01 测试小结: QPS :Queries Per Second,即数据库每秒执行的 SQL 数(增删改查等)。 TPS :Transactions Per Second,即数据库每秒执行的事务数,以 commit 成功次数为准。 RT :Response Time,95% 以上的最大响应时间(毫秒)。 16 线程/10 张表/单表数据量 1 万条 QPS = 10541.01 TPS = 526.57 RT = 45.79 ms
上述测试基于 MySQL 使用 NVME SSD 作为数据存储,对比使用机械磁盘,测试如下:
16 线程/10 张表/单表数据量 1 万条 QPS = 4853.75 TPS = 242.37 RT = 94.10 ms
可以看到,磁盘的读写性能对 MySQL 影响非常大,建议使用 SSD。
测试时长 5分钟,供参考:
磁盘类型 | 线程 | 表个数 | 单表数据量(万条) | QPS | TPS | 延迟(RT) |
NVME SSD | 16 | 10 | 1W | 10541 | 526 | 45.8 ms |
NVME SSD | 16 | 10 | 10W | 10316 | 515 | 48.3 ms |
NVME SSD | 16 | 10 | 100W | 6806 | 340 | 94.1 ms |
NVME SSD | 32 | 10 | 1W | 10743 | 536 | 95.8 ms |
NVME SSD | 32 | 10 | 10W | 10747 | 537 | 103.0 ms |
NVME SSD | 32 | 10 | 100W | 8102 | 405 | 147.6 ms |
SATA 8T 机械盘 | 16 | 10 | 1W | 4853 | 242 | 94.1 ms |
SATA 8T 机械盘 | 16 | 10 | 10W | 3893 | 194 | 170.5 ms |
SATA 8T 机械盘 | 16 | 10 | 100W | 840 | 42 | 802.1 ms |
SATA 8T 机械盘 | 32 | 10 | 1W | 6330 | 315 | 164.5 ms |
SATA 8T 机械盘 | 32 | 10 | 10W | 1795 | 90 | 277.2 ms |
SATA 8T 机械盘 | 32 | 10 | 100W | 800 | 40 | 2632.3 ms |
阿里云RDS云数据库性能测试:
数据库类型:常规实例(高可用版)
存储类型:本地SSD盘
测试前的准备:
在RDS上创建账号(普通账号,读写权限),创建测试数据库(数据库名:bench_test)
2021-01-21 15:01:26 准备运行 Sysbench 测试目标MySQL 服务器 rm-***.mysql.rds.aliyuncs.com:3306, 16 线程, 测试时长 60 秒 2021-01-21 15:01:26 创建数据库... 2021-01-21 15:01:26 生成测试数据.. 10 个表, 每个表 10 万条数据 2021-01-21 15:01:36 开始运行测试... 2021-01-21 15:02:36 测试完成 [ 30s ] thds: 16 tps: 371.50 qps: 7422.27 (r/w/o: 5195.18/1484.29/742.80) lat (ms,95%): 45.79 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 16 tps: 372.70 qps: 7454.86 (r/w/o: 5218.34/1491.11/745.41) lat (ms,95%): 45.79 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 16 tps: 373.20 qps: 7467.06 (r/w/o: 5227.57/1493.09/746.40) lat (ms,95%): 45.79 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 373.40 qps: 7467.47 (r/w/o: 5227.15/1493.31/747.01) lat (ms,95%): 45.79 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 312452 write: 89272 other: 44636 total: 446360 transactions: 22318 (371.72 per sec.) queries: 446360 (7434.31 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0391s total number of events: 22318 Latency (ms): min: 39.89 avg: 43.03 max: 136.10 95th percentile: 45.79 sum: 960287.14 Threads fairness: events (avg/stddev): 1394.8750/46.35 execution time (avg/stddev): 60.0179/0.01 测试小结: QPS :Queries Per Second,即数据库每秒执行的 SQL 数(增删改查等)。 TPS :Transactions Per Second,即数据库每秒执行的事务数,以 commit 成功次数为准。 RT :Response Time,95% 以上的最大响应时间(毫秒)。 16 线程/10 张表/单表数据量 10 万条 QPS = 7434.31 TPS = 371.72 RT = 45.79 ms