测试方法

<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&nbsp;)</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>&nbsp;<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.&nbsp; 登录ECS,进入压测脚本所在的目录。</p> <p>2.&nbsp; 执行如下命令,导入测试数据。</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#f7f8fa"> <p><span style="font-family:Consolas">sysbench --time=3600&nbsp; --mysql-host=xxx --mysql-port=&lt;<em>port</em>&gt; --mysql-user=&lt;<em>user</em>&gt; --mysql-password=&lt;<em>password</em>&gt; --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.&nbsp; 执行如下命令,压测性能。</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#f7f8fa"> <p><span style="font-family:Consolas">sysbench --time=3600&nbsp; --mysql-host=xxx --mysql-port=&lt;<em>port</em>&gt; --mysql-user=&lt;<em>user</em>&gt; --mysql-password=&lt;<em>password</em>&gt; --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.&nbsp; 执行如下命令,清理环境。</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#f7f8fa"> <p><span style="font-family:Consolas">sysbench --time=3600 &nbsp;--mysql-host=xxx --mysql-port=&lt;<em>port</em>&gt; --mysql-user=&lt;<em>user</em>&gt; --mysql-password=&lt;<em>password</em>&gt; --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>&nbsp;以上命令中,参数解释如下:</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>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

工单支持

解决云产品相关技术问题