linux磁盘顺序写,随机写的方法

  

  

●随机写会导致磁头不停地换道,造成效率的极大降低;顺序写磁头几乎不用换道,或者换道的时间很短
  ●本文来讨论一下两者具体的差别以及相应的内核调用

  

境准备   

           组件   版本               操作系统   Ubuntu 16.04.4 LTS         fio   2.2.10            

  

三,fio介绍

  

通过fio测试,能够反映在读写中的状态,我们需要重点关注fio的输出报告中的几个关键指标:
  板条:是指从I/O提交到实际执行I/O的时长(提交延迟)
  clat:是指从I/O提交到I/O完成的时长(完成延迟)
  纬度:指的是从fio创建I/O到I/O完成的总时长
  bw:吞吐量
  iops:每秒I/O的次数

  

  

  

<强>(1)同步随机写

  

主要采用fio作为测试工具,为了能够看到系统调用,使用strace工具,命令看起来是这样:

  

先来测试一个随机写
  

        strace - f tt - o/tmp/randwrite。日志- d fio - name=randwrite - rw=randwrite \   直接=1 b=4 k=1 g -numjobs=1 -group_reporting -文件名=/tmp/test.db      

提取关键信息

        root@wilson-ubuntu: ~ # strace - f tt - o/tmp/randwrite。日志- d fio - name=randwrite - rw=randwrite \   比;直接=1 b=4 k=1 g -numjobs=1 -group_reporting -文件名=/tmp/test.db   randwrite: (g=0): rw=randwrite, b=4 k-4k/4 k-4k/4 k-4k,同步,iodepth ioengine==1   fio-2.2.10   1开始的过程   …   randwrite:(groupid=0,乔布斯=1):呃=0:pid=26882: 2019年8月14日10:39:02结婚   写:io=1024.0 mb, bw=52526 kb/s, iops=13131,小牛=19963毫秒   clat(购买):min=42, max=18620, avg=56.15,方差=164.79   纬度(购买):min=42, max=18620, avg=56.39,方差=164.79   …   bw (KB/s): min=50648, max=55208=99.96%, avg=52506.03,方差=1055.83   …      运行状态组0(所有工作):   写:io=1024.0 mb, aggrb=52525 kb/s, minb=52525 kb/s, maxb=52525 kb/s,薄荷=19963毫秒,maxt=19963毫秒      磁盘数据(读/写):   …   sda: ios=0/262177=0/25合并,蜱虫=0/7500,in_queue=7476, util =36.05%      

列出了我们需要重点关注的信息:
  

  

, (1) clat,平均时长56女士左右
  

  

,(2)纬度,平均时长56女士左右
  

  

, (3) bw,吞吐量,大概在52米左右

  

再来看内核调用信息:

        root@wilson-ubuntu: ~ #/tmp/randwrite.log   …   26882年10:38:41.919904 lseek (3 665198592 SEEK_SET)=665198592   26882 10:38:41.919920写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 200 \ 36 \ 31 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.919969 lseek (3 4313088 SEEK_SET)=4313088   26882 10:38:41.919985写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 200 \ 36 \ 31 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920032 lseek (3 455880704 SEEK_SET)=455880704   26882 10:38:41.920048写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 200 \ 36 \ 31 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920096 lseek (3 338862080 SEEK_SET)=338862080   26882 10:38:41.920112写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920161 lseek (3 739086336 SEEK_SET)=739086336   26882 10:38:41.920177写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920229 lseek (3 848175104 SEEK_SET)=848175104   26882 10:38:41.920245写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920296 lseek (3 1060147200 SEEK_SET)=1060147200   26882 10:38:41.920312写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920362 lseek (3 863690752 SEEK_SET)=863690752   26882 10:38:41.920377写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920428 lseek (3 279457792 SEEK_SET)=279457792   26882 10:38:41.920444写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920492 lseek (3 271794176 SEEK_SET)=271794176   26882 10:38:41.920508写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   26882年10:38:41.920558 lseek (3 1067864064 SEEK_SET)=1067864064   26882 10:38:41.920573写(“\ 220 \ 240 @ \ \ 371 \ 341 \ 277祝辞\ \ 2402 \ 24 \ 0 0 \ 0 \ \ 202 \ \ 343 \ \ 320 \ \ 6 h \ 26 p \ 340 \ 277 \ 370 \ 330 \ 30 e \ 30”……4096)=4096   …

linux磁盘顺序写,随机写的方法