测试方法

<p>购买DDS实例后,您可以参照本文对实例性能进行性能测试。</p> <p><span style="font-size:18px"><strong>测试环境</strong></span></p> <ul> <li>地域:华北1</li> <li>可用区:可用区A</li> <li>实例类型:三节点副本集实例</li> <li>网络类型:专有网络</li> <li>云服务器ECS:4台g5.2xlarge.4(8核32GB)</li> <li>MongoDB版本:MongoDB3.4</li> </ul> <p><span style="font-size:18px"><strong>前提条件</strong></span></p> <ul> <li>您已成功创建DDS实例,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Instance_Management.Create_Instance.Create_Common_Instance" target="_blank">创建常规实例</a>。</li> <li>您已成功创建用户,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Account.Create_Account" target="_blank">创建用户</a>。</li> <li>您已成功创建数据库,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Database.Create_Database" target="_blank">创建数据库</a>。</li> <li>您已成功授权账号与数据库权限,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Account.Modify_Permissions" target="_blank">授权指定账号访问数据库</a>或<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Database.Modify_Permissions" target="_blank">授权数据库允许指定账号访问</a>。</li> <li>您已成功创建ECS,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Start.Create_ECS" target="_blank">创建ECS</a>。</li> <li>您已成功开通白名单,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Security_Management.Create_Whitelist" target="_blank">开通白名单</a>。</li> <li>您可以通过ECS连接DDS实例,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Start.5d634c75e9ca5f712e340ec9.5d634d426d37dd7142129b1d" target="_blank">客户端连接</a>。</li> </ul> <p><span style="font-size:18px"><strong>测试工具</strong></span></p> <p>本次测试采用开源社区的YCSB 0.5.0&nbsp;版本的测试工具。</p> <p>YCSB是一款Java编写的、支持多种数据库的性能测试工具,具体安装和使用方法请参见<a href="https://github.com/brianfrankcooper/YCSB/tree/master/mongodb" target="_blank">YCSB官方文档</a>。</p> <p><span style="font-size:18px"><strong>测试步骤</strong></span></p> <p>1.&nbsp; 在进行测试前,需要提交工单修改备节点的优先级为0,防止在测试过程中出现节点漂移。</p> <p>2.&nbsp; 修改workloada配置中的recordcount、operationcount、readproportion和updateproportion。其中:</p> <ul> <li>测试数据量:recordcount(测试数据集的记录条数)和operationcount(测试过程中执行的操作总数)之和,这两个参数因不同实例的性能不同,为控制压测时间,取值也有所区别。</li> <li>readproportion:读操作百分比,固定为0.8。</li> <li>updateproportion:更新操作百分比,固定为0.2。</li> <li>maxexecutiontime:测试执行时间,您可以根据实际情况调整。</li> <li>Threads:控制客户端连接数。</li> </ul> <p>3.&nbsp; 执行以下命令,准备数据。</p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#f7f8fa"> <p><span style="font-family:Consolas">./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://&lt;<em>User-name</em>&gt;:&lt;<em>Passward</em>&gt;@&lt;<em>Host-name</em>&gt;:&lt;<em>Port</em>&gt;/&lt;<em>Database-name</em>&gt;?w=1 -threads 100 &gt; outputLoad.txt</span><span style="font-family:Consolas"> </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">./bin/ycsb run mongodb -s -P workloads/workloada -p mongodb.url=mongodb://&lt;<em>User-name</em>&gt;:&lt;<em>Passward</em>&gt;@&lt;<em>Host-name</em>&gt;:&lt;<em>Port</em>&gt;/&lt;<em>Database-name</em>&gt;?w=0 -threads 150 &gt; outputRun.txt</span></p> </td> </tr> </tbody> </table> <p>YCSB常用选项说明:</p> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>选项</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>说明</strong></p> </td> </tr> <tr> <td> <p>-P</p> </td> <td> <p>设置workload 模式。</p> </td> </tr> <tr> <td> <p>-p</p> </td> <td> <p>设置客户端的参数。</p> </td> </tr> <tr> <td> <p><em>User-name</em></p> </td> <td> <p>连接实例的账号,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Account.Create_Account" target="_blank">创建账号</a>。</p> </td> </tr> <tr> <td> <p><em>Passward</em></p> </td> <td> <p>创建账号时的密码,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Account.Create_Account" target="_blank">创建账号</a>。</p> </td> </tr> <tr> <td> <p><em>Host-name</em></p> </td> <td> <p>实例的访问域名,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Instance_Management.View_Instance.View_Common_Instance" target="_blank">查看实例基本信息</a>。</p> </td> </tr> <tr> <td> <p><em>Port</em></p> </td> <td> <p>实例的连接端口,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Instance_Management.View_Instance.View_Common_Instance" target="_blank">查看实例基本信息</a>。</p> </td> </tr> <tr> <td> <p><em>Database-name</em></p> </td> <td> <p>连接实例的认证数据库,可参考<a href="https://pinganyun.com/ssr/help/database/mongodb/Manual.Account.Create_Account" target="_blank">创建账号</a>。</p> </td> </tr> <tr> <td> <p>w</p> </td> <td> <p>设置writeConcern模式:</p> <ul> <li>1:应答式写入</li> <li>0:非应答式写入</li> </ul> </td> </tr> <tr> <td> <p>-threads</p> </td> <td> <p>测试中使用的线程数。</p> </td> </tr> </tbody> </table> <p><span style="font-size:18px"><strong>测试指标</strong></span></p> <p>查看outputRun.txt中的测试结果:</p> <ul> <li>throughput:客户端测试吞吐量,即读写操作数。</li> <li>RAL:读操作平均延迟,单位:us。</li> <li>WAL:写操作平均延迟,单位:us。</li> </ul>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询 - 7x24 小时

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

7x24 小时,急速解答

工单支持

解决云产品相关技术问题