バッファをクリアするとソフトウェアRAIDが遅くなります。

バッファをクリアするとソフトウェアRAIDが遅くなります。

mdraidCentOS 7.6で実験中です。fio4ストライプ配列に順次書き込みを行っていますが、RAMバッファに書き込むとスピードが見事に始まり、fsync中に遅くなります。end_fsyncデータがディスクに書き込まれたことを確認するために使用されます。このテストでは、iostat別のウィンドウで4つのディスクを監視しました。

最初はiostat各ディスクあたり165MBpsを示し、fio3000MBpsを超える書き込み速度を示した。したがって、我々はRAMに書き込み、同時にカーネルはディスクに書き込みます。 fioが書き込みを終了すると、バッファをディスクにフラッシュします。この間、書き込み速度はゼロであり、iostat約120MBpsに低下した。私はfsyncが最初の書き込みと同じくらい速くなければならないと思ったので、なぜfsyncがより速くないのかを理解しようとしています。

$ fio --name=seqwrite --rw=write --bs=1M --size=3G --directory=/mnt/raid --end_fsync=1 --numjobs=4 --group_reporting
seqwrite: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
...
fio-3.1
Starting 4 processes
Jobs: 2 (f=2): [_(1),F(1),_(1),F(1)][-.-%][r=0KiB/s,w=0KiB/s][r=0,w=0 IOPS][eta 00m:00s]
seqwrite: (groupid=0, jobs=4): err= 0: pid=9959: Thu Sep 12 16:47:50 2019
  write: IOPS=534, BW=534MiB/s (560MB/s)(12.0GiB/23009msec)
    clat (usec): min=315, max=21855, avg=1356.25, stdev=3850.63
     lat (usec): min=324, max=21881, avg=1373.31, stdev=3852.25
    clat percentiles (usec):
     |  1.00th=[  322],  5.00th=[  326], 10.00th=[  330], 20.00th=[  343],
     | 30.00th=[  347], 40.00th=[  359], 50.00th=[  367], 60.00th=[  371],
     | 70.00th=[  383], 80.00th=[  445], 90.00th=[  586], 95.00th=[14746],
     | 99.00th=[19268], 99.50th=[19530], 99.90th=[21627], 99.95th=[21890],
     | 99.99th=[21890]
   bw (  KiB/s): min=14364, max=2881154, per=100.00%, avg=704062.00, stdev=949759.73, samples=35
   iops        : min=   14, max= 2813, avg=687.29, stdev=927.47, samples=35
  lat (usec)   : 500=85.28%, 750=8.30%, 1000=0.20%
  lat (msec)   : 2=0.02%, 4=0.01%, 10=0.15%, 20=5.57%, 50=0.46%
  cpu          : usr=0.30%, sys=17.58%, ctx=100619, majf=0, minf=106
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwt: total=0,12288,0, short=0,0,0, dropped=0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=534MiB/s (560MB/s), 534MiB/s-534MiB/s (560MB/s-560MB/s), io=12.0GiB (12.9GB), run=23009-23009msec

Disk stats (read/write):
    md0: ios=0/3145734, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/6655, aggrmerge=0/778369, aggrticks=0/2292548, aggrin_queue=2292870, aggrutil=95.06%
  sda: ios=0/6502, merge=0/778634, ticks=0/3019328, in_queue=3019466, util=95.06%
  sdb: ios=0/6465, merge=0/778498, ticks=0/2554715, in_queue=2555016, util=92.24%
  sdc: ios=0/6780, merge=0/778266, ticks=0/1745808, in_queue=1746414, util=92.00%
  sdd: ios=0/6875, merge=0/778080, ticks=0/1850343, in_queue=1850585, util=91.34%

アレイは4Kブロックにストライプされた4つの回転ディスクで、XFSファイルシステムを備えています。 RAID がない単一の XFS ディスクで同じテストを実行しても、この問題は発生しません。書き込み速度は常に160MBpsで安定しています。

関連情報