zoukankan      html  css  js  c++  java
  • 磁盘性能测试方法

    在进行下列测试前,请确保磁盘已经 4K 对齐。
    什么是4K对齐?
    4k对齐是硬盘分区中的一个专业术语,4K对齐就是符合4K扇区定义格式化过的硬盘,并且按照4K扇区的规则写入数据。一般来说,在给固态硬盘进行分区的时候,一定要勾选上4K对齐,否则会影响到SSD固态硬盘的性能与寿命。
    通俗的说,如果SSD不进行4K对齐,写入数据的写入点正好会介于两个4K扇区的之间,也就是说即使是写入最小量的数据,也会使用到两个4K扇区,这样会造成跨区读写,读写次数放大,从而影响磁盘性能。此外SSD的寿命也是大家比较关心的,经常跨区读写的SSD最终能用多久也可想而知了。
    早期的硬盘一个扇区的大小是512个字节,后来随之磁盘容量的不断增加和读写效率提升的要求,国际硬盘协会制定了全新标准,将每个扇区的大小调整为4096个字节,也就是4KB,这种扇区又叫4K扇区。4K对齐指的就是对磁盘分区时,让分区的起始扇区位于某一个4K扇区的起始位置。

    • 测试随机写IOPS
    fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
    
    • 测试随机读IOPS
    fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
    
    • 测试写吞吐量
    fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
    
    • 测试读吞吐量
    fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
    

    ** 上述测试时 fio 相关参数说明:**

    参数 说明
    -direct=1 测试时忽略 IO 缓存,数据直写。
    -rw=randwrite 测试时的读写策略,可选值 randread (随机读)、 randwrite(随机写)、 read(顺序读)、 write(>顺序写)、 randrw (混合随机读写)。
    -ioengine=libaio 测试方式使用 libaio (Linux AIO,异步 IO)。 应用使用 IO 通常有二种方式:同步和异步。>同步的 IO 一次只能发出一个 IO 请求,等待内核完成才返回。这样对于单个线程 iodepth 总是小于 1,但是可以透过多个>线程并发执行来解决。通常会用 16-32 根线程同时工作把 iodepth 塞满。 异步则通常使用 libaio 这样的方式一次提交一>批 IO 请求,然后等待一批的完成,减少交互的次数,会更有效率。
    -bs=4k 单次 IO 的块文件大小为 4k。未指定该参数时的默认大小也是 4k。
    -size=1G 测试文件大小为 1G。
    -numjobs=1 测试线程数为 1。
    -runtime=1000 测试时间为 1000 秒。如果未配置则持续将前述 -size 指定大小的文件,以每次 -bs 值为分块大小写完。
    -group_reporting 测试结果显示模式,group_reporting 表示汇总每个进程的统计信息,而非以不同 job 汇总展示>信息。
    -filename=iotest 测试时的输出文件路径和名称。测试完成后请记得删除相应文件,以免占用磁盘空间。
    -name=Rand_Write_Testing 测试任务名称。
  • 相关阅读:
    利用Expression实现DbReader到对象属性的绑定
    致多年后第一次更新
    阿拉伯数字转换成中文大写
    Android程序的入口点是什么,不是Main()吗
    imageButton 和button的区别
    对象和引用的区别
    hdu 4455 Substrings
    Running Rabbits
    ZOJ Problem Set
    几乎就是并查集 (Almost Union-Find,UVa 11987)
  • 原文地址:https://www.cnblogs.com/xiaozhuangAna/p/10348909.html
Copyright © 2011-2022 走看看