zoukankan      html  css  js  c++  java
  • 使用dd工具对磁盘RAID5和10进行I/O性能测试

    很多情况下大家在对于理论深信不疑,理论是有前提条件的,不是所有的情况下都是正确的。恰逢公司有服务器,故进行了磁盘性能测试,当然测试的结果也只是顺序I/O性能测试(dd机制决定的)。

    前提条件:(DELL R630 物理机测试,内存64G)
    RAID5 5块盘(600G SAS)+ 1块(GHS)
    RAID10 6块盘(600G SAS)+ 0块(GHS)
    *测试的时候为了保证测试结果的真实性,请确保测试文件的大小要远远大于内存容量。

    一、磁盘写性能测试
    #dd if=/dev/zero of=/yc/itest.iso bs=1G count=1000 conv=fdatasync

    #dd if=/dev/zero of=/yc/itest.iso bs=1G count=1000 conv=fdatasync

    二、磁盘读性能测试
    #dd if=/yc/itest.iso of=/dev/zero bs=1G count=1000 iflag=direct

    附录:
    一般情况下,我们都是使用dd命令创建一个大文件来测试磁盘的读写速度。但是,很多人都存在一个误区,以为dd命令显示的速度就是磁盘的写入速度,其实这是不然的。我们分析一下dd命令是如何工作的。
    1. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1
    这种情况下测试显示的速度是dd命令将数据写入到内存缓冲区中的速度,只有当数据写入内存缓冲区完成后,才开始将数据刷入硬盘,所以这时候的数据是无法正确衡量磁盘写入速度的。

    2. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1;sync
    这种情况下测试显示的跟上一种情况是一样的,两个命令是先后执行的,当sync开始执行的时候,dd命令已经将速度信息打印到了屏幕上,仍然无法显示从内存写硬盘时的真正速度。

    3. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1 conv=fdatasync
    这种情况加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。

    4. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1 oflag=dsync
    这种情况下,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式,基本上没有用到写缓存(write cache)。

  • 相关阅读:
    扩欧(exgcd讲解)
    Django组件之forms
    Django组件之用户认证
    Django之中间件
    Django之cookie与session
    Django组件之分页器
    Django之Ajax
    Django之模型层2
    Django之模型层
    Django之模板层
  • 原文地址:https://www.cnblogs.com/xkops/p/5594985.html
Copyright © 2011-2022 走看看