测试方法
<p>购买RDS-MySQL实例后,您可以参照本文对实例性能进行性能测试。</p>
<p><span style="font-size:18px"><strong>测试环境</strong></span></p>
<ul>
<li>区域:华东1</li>
<li>可用区:可用区A</li>
<li>云服务器ECS:c4.8xlarge.2(32核64GB )</li>
<li>操作系统:CentOS7.7-64Bit</li>
</ul>
<p><span style="font-size:18px"><strong>前提条件</strong></span></p>
<ul>
<li>您已成功创建RDS-MySQL实例,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Instance_Management.Create_Instance.Create_Common_Instance" target="_blank">创建常规实例</a>。</li>
<li>您已成功创建账号,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Account.Create_Account" target="_blank">创建账号</a>。</li>
<li>您已成功创建数据库,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Database.Create_Database" target="_blank">创建数据库</a>。本文以dbtest数据库为例。</li>
<li>您已成功授权账号与数据库权限,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Account.Modify_Permissions" target="_blank">授权指定账号访问数据库</a>或<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Database.Modify_Permissions" target="_blank">授权数据库允许指定账号访问</a>。</li>
<li>您已成功创建ECS,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/Getting_Started.RDS_MySQL.Create_ECS" target="_blank">创建ECS</a>。</li>
<li>您已成功开通白名单,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Security_Management.Create_Whitelist" target="_blank">开通白名单</a>。</li>
<li>您可以通过ECS连接RDS-MySQL实例,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/Getting_Started.RDS_MySQL.Connect_RDS_MySQL.Linux" target="_blank">Linux系统连接</a>。</li>
</ul>
<p><span style="font-size:18px"><strong>测试工具</strong></span></p>
<p>SysBench是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时,相关核心参数的性能表现。SysBench可以在不进行复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。</p>
<p>本文以平安云ECS为例安装SysBench,如果您需要安装到其他操作系统,可参考 <a href="https://github.com/akopytov/sysbench" target="_blank">SysBench 官方文档</a>。</p>
<p>测试使用的是 SysBench 1.0.17 版本,登录ECS,执行如下命令进行安装:</p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#f7f8fa">
<p><span style="font-family:Consolas">yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql<br />
yum -y install sysbench</span></p>
</td>
</tr>
</tbody>
</table>
<p> <img src="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/pcp-portal-sca/20202807174401-12684a9998e9.png" style="height:26px; margin:0px; width:65px" />:</p>
<ul>
<li>成功安装SysBench后,RDS-MySQL性能测试使用目录/usr/ share/sysbench下的压测脚本。</li>
<li>SysBench脚本中定义的常用压测模型如下:</li>
</ul>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#ededed">
<p><strong>压测模型</strong></p>
</td>
<td style="background-color:#ededed">
<p><strong>描述</strong></p>
</td>
</tr>
<tr>
<td>
<p>bulk_inert.lua</p>
</td>
<td>
<p>批量插入数据。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_insert.lua</p>
</td>
<td>
<p>插入数据。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_delete.lua</p>
</td>
<td>
<p>删除数据。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_read_write.lua</p>
</td>
<td>
<p>混合读写测试,包含只读测试及只写测试。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_point_select.lua</p>
</td>
<td>
<p>简单的主键查询。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_read_only.lua</p>
</td>
<td>
<p>只读测试,包含简单范围、范围求和、排序查询、distinct查询。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_update_index.lua</p>
</td>
<td>
<p>基于索引更新数据。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_update_non_index.lua</p>
</td>
<td>
<p>不基于索引更新数据。</p>
</td>
</tr>
<tr>
<td>
<p>oltp_write_only.lua</p>
</td>
<td>
<p>只写测试,包含更新数据测试及删除数据测试。</p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size:18px"><strong>测试步骤</strong></span></p>
<p>1. 登录ECS,进入压测脚本所在的目录。</p>
<p>2. 执行如下命令,导入测试数据。</p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#f7f8fa">
<p><span style="font-family:Consolas">sysbench --time=3600 --mysql-host=xxx --mysql-port=<<em>port</em>> --mysql-user=<<em>user</em>> --mysql-password=<<em>password</em>> --mysql-db=dbtest --db-driver=mysql --tables=16 --threads=20 --table_size=1000000 oltp_read_write.lua prepare</span></p>
</td>
</tr>
</tbody>
</table>
<p>3. 执行如下命令,压测性能。</p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#f7f8fa">
<p><span style="font-family:Consolas">sysbench --time=3600 --mysql-host=xxx --mysql-port=<<em>port</em>> --mysql-user=<<em>user</em>> --mysql-password=<<em>password</em>> --mysql-db=dbtest --db-driver=mysql --tables=16 --threads=20 --table_size=1000000 --report-interval=10 oltp_read_write.lua run</span></p>
</td>
</tr>
</tbody>
</table>
<p>4. 执行如下命令,清理环境。</p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#f7f8fa">
<p><span style="font-family:Consolas">sysbench --time=3600 --mysql-host=xxx --mysql-port=<<em>port</em>> --mysql-user=<<em>user</em>> --mysql-password=<<em>password</em>> --mysql-db=dbtest --db-driver=mysql --tables=16 --threads=20 --table_size=1000000 oltp_read_write.lua cleanup</span></p>
</td>
</tr>
</tbody>
</table>
<p> 以上命令中,参数解释如下:</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="background-color:#ededed">
<p><strong>参数</strong></p>
</td>
<td style="background-color:#ededed">
<p><strong>说明</strong></p>
</td>
</tr>
<tr>
<td>
<p>time</p>
</td>
<td>
<p>测试时间。</p>
</td>
</tr>
<tr>
<td>
<p>mysql-host</p>
</td>
<td>
<p>实例的访问域名,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Instance_Management.View_Instance.View_Common_Instance" target="_blank">查看实例基本信息</a>。</p>
</td>
</tr>
<tr>
<td>
<p>mysql-port</p>
</td>
<td>
<p>实例的连接端口,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Instance_Management.View_Instance.View_Common_Instance" target="_blank">查看实例基本信息</a>。</p>
</td>
</tr>
<tr>
<td>
<p>mysql-user</p>
</td>
<td>
<p>连接实例的账号,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Account.Create_Account" target="_blank">创建账号</a>。</p>
</td>
</tr>
<tr>
<td>
<p>mysql-password</p>
</td>
<td>
<p>创建账号时设置的密码,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Account.Create_Account" target="_blank">创建账号</a>。</p>
</td>
</tr>
<tr>
<td>
<p>mysql-db</p>
</td>
<td>
<p>实例中创建的数据库,可参考<a href="https://pinganyun.com/ssr/help/database/RDS/User_Guide_RDS_MySQL.Database.Create_Database" target="_blank">创建数据库</a>。本文以数据库dbtest为例。</p>
</td>
</tr>
<tr>
<td>
<p>db-driver</p>
</td>
<td>
<p>数据库引擎。</p>
</td>
</tr>
<tr>
<td>
<p>tables</p>
</td>
<td>
<p>测试的表数量。</p>
</td>
</tr>
<tr>
<td>
<p>threads</p>
</td>
<td>
<p>测试的线程数。</p>
</td>
</tr>
<tr>
<td>
<p>table_size</p>
</td>
<td>
<p>测试的表大小。</p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size:18px"><strong>测试指标</strong></span></p>
<ul>
<li>TPS(Transactions Per Second):数据库每秒执行的事务数,以COMMIT成功次数为准。</li>
<li>QPS(Queries Per Second):数据库每秒执行的SQL语句数,包含INSERT、SELECT、UPDATE、DELETE等。</li>
</ul>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!