• 海思板卡SATA最佳读写块大小测试


    1    引言

    应需求,在海思板子上测试SATA读写速度,用dd指令,每次分别读/写不同大小的块    (bs),同时检测运行dd命令CPU占比,记录读/写速度和CPU占比。

    2    实验过程

    2.1     用dd指令对SATA分区进行多次文件写入,写入总大小分别为320M, 640M, 1280M, 2560M,单次写入块大小分别为512B, 1K, 2K, 4K, 8k, 16K, 32K, 64K, 128K, 256K, 512K, 1024K, 2M, 4M, 8M, 16M, 32M,每个块大小写入测试n (n=3)次;

    2.2     在写入过程中计算得到该进程占用CPU百分比的平均值,写入结束后记录此次写入平均速度;

    2.3     将实验结果画图展示;

    2.4     将文件写入改为分区读出,重复2.1和2.2过程,得到读出文件速度和CPU占比,画图展示。

    3    实验结果

    3.1          文件写入

    图1-4分别为对SATA分区1(sda1)进行文件写入得到的相关数据:

    图 1

    图 2

    图 3

    图 4

    结合写入速度和CPU占比,为获得最佳写入块大小,取最大写入速度和较低的CPU占比的共同点。由图1-4可以分别看出,符合条件的块大小分别为32K,16K,32K,16K。

    3.2          文件读出

    图5-8分别为对SATA分区1(sda1)进行文件读出得到的相关数据:

    图 5

     

    图 6

    图 7

     

    图 8

    结合读出速度和CPU占比,为获得最佳读出块大小,取最大读出速度和较低的CPU占比的共同点。由图1-4可以分别看出,符合条件的块大小分别为64K,16K,64K,16K。

    附加实验:测试320M, 640M, 1280M, 2560M下以16K和64K为读取块大小的读出速度和CPU占比,结果如下表所示:

    表 1 读取块为16K与64K的速度和CPU占比

     

    16K

    64K

    Speed

    (Mb/s)

    320M

    63.46

    62.09

    320M

    58.12

    62.81

    640M

    74.07

    75.56

    640M

    73.41

    71.57

    1280M

    79.84

    79.28

    1280M

    80.62

    78.55

    2560M

    87.77

    84.12

    2560M

    83.87

    84.20

    平均

    75.77

    平均

    74.14

    CPU

    (%)

    320M

    29

    29

    320M

    18

    27

    640M

    27

    26

    640M

    26

    34

    1280M

    33

    33

    1280M

    36

    31

    2560M

    40

    37

    2560M

    38

    36

    平均

    32

    平均

    31

    由上表格中16K和64K对应的读取速度和CPU占比平均值对比可看出,在CPU占比相差较小的情况下,较大读取速度的文件读块大小为16K。

    4    实验结论

    由3.1得出,比较理想的单次写入块大小为16K和32K,但根据图1中16K的写入速度低于32K的写入速度约20Mb/s,因此最佳的单次写入块大小为16K,其次为32K。

    由3.2中的实验结果可知16K和64K的读取速度均较佳,结合附加实验结果可得出,最佳的单次读取块大小为16K,其次为64K。

           结合已上两个实验结论,针对该海思板卡的SATA读写,以16K作为单次块读写可获得较快的速度且较低的CPU占比。

    shell笔记

    01. shell 当中#!/bin/sh 后面跟-x可以逐步显示出执行过程和结果,便于调试。

    02.

    while read line;do  
        eval "$line"  
    
    done < $conffile

      使用类似如上导入文件的方法后,部分指令的&后台运行功能失效。原因未知。

    03. 像dd等指令直接重定向 ">" 到文件中不会将显示在屏幕上的内容写入文件,应写 "2>" 将"2"也就是标准错误定向到文件。

    04.  sed的用法之找到匹配的行,并删除或者整行替换:

      

    #方法一:
    line=`sed -i '/$str/=' $filename`
    for i in $line 
    do
        sed -i "${i}d" $filename  #删除
        sed -i "$i i${str}" $filename   #在删除的那行加字符串str
    done
    
    #方法二:
    #匹配到xxxx的行整行替换为str,几乎是万能的行替换,同样适用于匹配的字符串不是行首的情况。
    sed -i "/xxxxx/s/^.*/$str/g" $filename 

      方法二的效率明显高于一。

          

    种树最好的时间是十年前,其次是现在。
  • 相关阅读:
    Java入门学习路线目录索引(持续更新中)
    关于技术面试,面试官会怎么考察?
    什么是REST以及 RESTful?
    程序猿一般可以从什么平台接私活
    Statement常用的方法回顾
    信息网络安全协会学习总结提交规范
    20155322 2017-2018-1 《信息安全系统设计》第五周 MyBash实现
    20155322 2017-2018-1《信息安全系统设计》第五周 学习总结
    2017-2018-1 20155322 20155327 实验一 开发环境的熟悉
    20155322 2017-2018-1《信息安全系统设计》第四周学习总结
  • 原文地址:https://www.cnblogs.com/bobojiang/p/7851633.html
Copyright © 2020-2023  润新知