上云无忧 > 文档中心 > 百度智能云云数据库RDS性能测试白皮书基准测试
云数据库 RDS
百度智能云云数据库RDS性能测试白皮书基准测试

文档简介:
用户在做性能测试时,可以参考以下推荐配置和测试方法自己做,也可以发工单让百度智能云工程师协助做。 下面环境,由客户根据需要选择。如果是跟其他云厂商做性能对比,注意保持多个环境一致。 for MySQL 版 for SQL Server 版 for PostgreSQL 版
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠



用户在做性能测试时,可以参考以下推荐配置和测试方法自己做,也可以发工单让百度智能云工程师协助做。

测试环境

下面环境,由客户根据需要选择。如果是跟其他云厂商做性能对比,注意保持多个环境一致。

类型 说明
客户端配置 推荐BCC配置4核8G,镜像CentOS 7.5 64位
客户端个数 如单个客户端是瓶颈,建议采用多个客户端并行压测求取数据总和
并发连接数 推荐20个并发,测试多组求平均值
云数据库 RDS 实例配置 客户可根据需要选择当前售卖主流配置规格,配置越大性能越好
网络环境 需保证客户端与云数据库 RDS 实例在同一可用区,测试结果不受网络因素影响

测试工具

SysBench简介

SysBench 是一款跨平台且支持多线程的模块化基准测试工具,可以用来做 CPU/内存/磁盘IO/线程/mutex 和数据库的基准测试。目前支持的数据库有 MySQL/Oracle/PostgreSQL。

SysBench 0.5 是基于 LuaJIT 的可脚本化的多线程基准测试工具,它常用于数据库的基准测试,也可以在不安装数据库的前提下,快速获取数据库主机的性能。以下操作都将以支持MySQL数据库为例进行。

安装方法

  1. 数据库基准测试使用的 SysBench 版本为 0.5,点此下载。
  2. SysBench 的一些安装依赖(root账号安装)。

    yum -y install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel

  3. 执行如下命令安装 SysBench,以下假设安装在目录 /home/mysql/sysbench-0.5 。

    unzip sysbench-0.5.zip
    cd sysbench-0.5
    ./autogen.sh
    ./configure --prefix=/home/mysql/sysbench-0.5/
    make && make install

    注意:要求本机必须装有MySQL客户端

测试方法

测试场景

本文档基于 SysBench 0.5 的 oltp.lua 脚本进行混合压测,各种类型的 SQL 

占比:select:update_key:update_non_key:delete:insert = 14:1:1:1:1 。

测试数据

  1. 库表结构

    CREATE TABLE `sbtest` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `k` int(10) unsigned NOT NULL DEFAULT '0',
    `c` char(120) NOT NULL DEFAULT '',
    `pad` char(60) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`),
    KEY `k` (`k`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  2. 数据格式

    id: 1
    k: 5273
    c: 902503501-67767851-807412765-640373553-541938462-40619231-573487999-109160704-120461662-146156906
    pad: 151642452-829603952-404629406-666642176-33138146

测试SQL

  1. 查询

    SELECT c FROM sbtest1 WHERE id=51
    SELECT c FROM sbtest1 WHERE id BETWEEN 43 AND 43+99
    SELECT c FROM sbtest1 WHERE id BETWEEN 60 AND 60+99 ORDER BY c
    SELECT SUM(K) FROM sbtest1 WHERE id BETWEEN 51 AND 51+99
    SELECT DISTINCT c FROM sbtest1 WHERE id BETWEEN 54 AND 54+99 ORDER BY c
  2. 插入

    INSERT INTO sbtest1 (id, k, c, pad) VALUES (0, 499366, '98960633772-54743256208-
  3. 23159763969-65787956584-31825798401-86270736030-94250135789-27425861392-37055945206-78163709800'
  4. , '54784722736-74321090296-30487485394-35643091700-34261489188')
  5. 更新

    UPDATE sbtest1 SET k=k+1 WHERE id=497476
    UPDATE sbtest1 SET c='48790759921-68407130797-95399114726-08732206562-54416332000
  6. -64051686468-52626165210-54833068892-10841816541-80972096087' WHERE id=495283
  7. 删除

    DELETE FROM sbtest1 WHERE id=485435

测试命令

  1. 准备数据

    /home/mysql/sysbench-0.5/bin/sysbench --mysql-host=xxxx --mysql-user=xxxx
  2.  --mysql-password=xxxx --mysql-port=3306 --num-threads=20 --max-time=3600
  3.  --max-requests=999999999 --db-driver=mysql --mysql-table-engine=innodb 
  4. --oltp-table-size=10000000 --oltp-tables-count=64 --test=/home/mysql/sysbench-0.5/share/sysbench/oltp.lua prepare
  5. 基准压测

    /home/mysql/sysbench-0.5/bin/sysbench --mysql-host=xxxx --mysql-user=xxxx
  6.  --mysql-password=xxxx --mysql-port=3306 --num-threads=20 --max-time=3600
  7.  --max-requests=999999999 --db-driver=mysql --mysql-table-engine=innodb 
  8. --oltp-table-size=10000000 --oltp-tables-count=64 --test=/home/mysql/sysbench-0.5/share/sysbench/oltp.lua run
  9. 清理环境

    /home/mysql/sysbench-0.5/bin/sysbench --mysql-host=xxxx --mysql-user=xxxx 
  10. --mysql-password=xxxx --mysql-port=3306 --num-threads=20 --max-time=3600 
  11. --max-requests=999999999 --db-driver=mysql --mysql-table-engine=innodb 
  12. --oltp-table-size=10000000 --oltp-tables-count=64 --test=/home/mysql/sysbench-0.5/share/sysbench/oltp.lua cleanup

SysBench 主要参数说明:

参数 说明
--mysql-host=xxxx 测试数据库的地址
--mysql-port=xxxx 测试数据库的端口
--mysql-user=xxxx 测试数据库的测试账号
--mysql-password=xxxx 测试数据库的测试账号对应的密码
--mysql-db=xxxx 测试数据库名字
--num-threads 发起的并发连接数
--mysql-table-engine=Innodb/MyISAM 测试表存储引擎
--db-driver=mysql 表示要测试的是MySQL数据库
--max-time 最大执行时长
--max-requests 总请求数。可以和max_time二选一
--test=$sysbench_path/oltp.lua 表示要调用oltp.lua脚本进行oltp测试
--oltp_tables_count 表示要生成多少个测试表
--oltp-table-size 表示每个表要填充多少数据量

性能指标

TPS

Transactions Per Second,每秒执行的事务数,以 commit 成功次数为准。

QPS

Queries Per Second,每秒执行的 SQL 数(含insert、select、update、delete)。

平均响应时间

Response time avg,即执行每组操作,平均每个 SQL 的响应时间。



相似文档
  • 云数据库 RDS 资源因为欠费被暂停使用了,充值之后云数据库 RDS 实例会自动恢复吗? 云数据库 RDS 实例欠费后,状态会变成“欠费中”,用户续费后云数据库 RDS 实例会立刻恢复使用。 for MySQL 版
  • 如何登录云数据库 RDS 数据库实例? 请参考操作指南中的使用云数据库 RDS 实例。 云数据库 RDS 目前支持哪几类数据库引擎? 云数据库 RDS 目前支持 MySQL、SQL Server、PostgreSQL 数据库。 目前暂无计划支持 Oracle 数据库,用户可以选择自己申请BCC虚机搭建这些类型的数据库。 for MySQL 版
  • 登录不上云数据库 RDS 如何排查? Ping 云数据库 RDS 域名是否可通; 账号、密码是否有误; 白名单授权是否正确; 连接数是否打满; 如果返回错误提示如端口不可达(110、111、104错误码),请提交工单。 for MySQL 版
  • 数据表存储引擎如何选择? 推荐使用 InnoDB 表,InnoDB 在并发读写情况下好于 MyISAM,并 InnoDB支持事务,表不易损坏。 for MySQL 版
  • 云数据库 RDS for MySQL 数据库对数据量有限制吗? 云数据库 RDS 对各套餐的 MySQL 实例做了数据量上的限制。最小套餐支持 5G 磁盘数据空间,最大套餐支持 3000GB 磁盘数据空间。1000GB 以上磁盘套餐当前仅支持在广州区域创建。 for MySQL 版
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部