• MySQL服务器SSD性能问题分析与测试


    【问题】

    我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试。

    【工具】

    blktrace是linux下用来排查IO性能的工具。它可以记录IO经历的各个步骤,并计算出IO请求在各个阶段的消耗,下面是关键的一些步骤:

    Q2G – 生成IO请求所消耗的时间,包括remap和split的时间;

    G2I – IO请求进入IO Scheduler所消耗的时间,包括merge的时间;

    I2D – IO请求在IO Scheduler中等待的时间;

    D2C – IO请求在driver和硬件上所消耗的时间;

    Q2C – 整个IO请求所消耗的时间(G2I + I2D + D2C = Q2C),相当于iostat的await。

    其中D2C可以作为硬件性能的指标,I2D可以作为IO Scheduler性能的指标。

    【测试一、比较HP SSD Smart Path开启前后SSD的写入性能】

    1、HP SSD Smart Path开启,SSD控制器Caching关闭,Cache Ratio: 100% Read / 0% Write

    测试结果如下,主要关注D2C(IO请求在SSD上消耗的时间)的AVG值,约为0.217ms

    2、HP SSD Smart Path关闭,SSD控制器Caching开启,Cache Ratio: 10% Read / 90% Write

    测试结果如下,主要关注D2C(IO请求在SSD上消耗的时间)的AVG值,约为0.0906ms

    【结论】

    前者在硬件上的消耗时间是后者的约2.4倍,对于写入为主的系统,建议HP SSD Smart Path关闭,SSD控制器Caching开启

    【测试二、比较noop和deadline两种I/O调度算法的性能】

    目前磁盘的调度算法有如下四种,我们系统中的配置值为deadline,很多资料上建议SSD配置为noop

    1、Anticipatory,适用于个人PC,单磁盘系统;

    2、CFQ(Complete Fair Queuing),默认的IO调度算法,完全公平的排队调度算法

    3、Deadline,按照截止期限来循环在各个IO队列中进行调度

    4、noop,简单的FIFO队列进行调度

    下面都在HP SSD Smart Path关闭的情况下测试,

    1、deadline, 主要关注G2I和I2D

    2、修改为noop

     

    【结论】

    noop的IO Scheduler在等待和消耗的时间比deadline稍好,但差异不是很大。如果需要评估,还需要进一步详细的在各个场景下的测试。

    下图是网上资料对不同调度算法的测试比较:

     

    【测试三、比较这台服务器SSD与相同配置SSD的消耗时间】

    AVG D2C为0.0906ms,0.0934ms,差异不大,说明这台服务器的SSD从响应时间上正常

  • 相关阅读:
    斜率优化DP 总结(含凸优化)
    [Usaco2008 Mar]土地购买
    C#.NET 调用 MatlabBP神经网络工具箱——通过调用matlab引擎实现
    C# matalb混合编程/matlab神经网络工具箱无法编译/C#调用matlab工具箱函数“未定义与 'struct' 类型的输入参数相对应的函数 'sim'”
    .net 插件式开发——实现web框架中大数据算法嵌入(BP算法逼近)
    将java project打包成jar包,web project 打包成war包的几种演示 此博文包含图片
    SpringMVC+ajax返回JSON串
    怎样从SpringMVC返回json数据
    单点登录SSO
    linux 根据进程名查看其占用的端口
  • 原文地址:https://www.cnblogs.com/wangdong/p/9970866.html
Copyright © 2020-2023  润新知