F2FSを測ってみた
新しいmicroSDに容量15GB程度のパーティション切って、ext4かF2FSでフォーマットした。USBのmicroSDリーダーを使い、Raspberry Pi 3上のarchlinux armでfioを実行した。結果は以下の通り。
結果
ext4
- IOPS=337, BW=1350KiB/s
- IOPS=348, BW=1392KiB/s
F2FS
- IOPS=695, BW=2781KiB/s
- IOPS=644, BW=2579KiB/s
[akimasa@alarmpi ~]$ sudo mkfs.ext4 /dev/sda2
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 3786752 4k blocks and 948416 inodes
Filesystem UUID: db43a860-db0f-40dd-8aac-f8c6b978dd60
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[akimasa@alarmpi ~]$ mount /dev/sda2 mountpoint/
mount: only root can do that
[akimasa@alarmpi ~]$ sudo mount /dev/sda2 mountpoint/
[akimasa@alarmpi ~]$ cd mountpoint/
[akimasa@alarmpi mountpoint]$ sudo fio -filename=./testtmp -direct=1 -rw=randwrite -bs=4k -size=1000M -numjobs=16 -runtime=20 -group_reporting -name=file1
file1: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
…
fio-3.13
Starting 16 processes
file1: Laying out IO file (1 file / 1000MiB)
Jobs: 16 (f=16): [w(16)][100.0%][w=664KiB/s][w=166 IOPS][eta 00m:00s]
file1: (groupid=0, jobs=16): err= 0: pid=2528: Mon Mar 11 15:49:01 2019
write: IOPS=337, BW=1350KiB/s (1382kB/s)(26.4MiB/20034msec); 0 zone resets
clat (usec): min=1185, max=1532.3k, avg=47337.89, stdev=86609.63
lat (usec): min=1189, max=1532.3k, avg=47341.86, stdev=86609.70
clat percentiles (msec):
| 1.00th=[ 28], 5.00th=[ 30], 10.00th=[ 31], 20.00th=[ 31],
| 30.00th=[ 32], 40.00th=[ 32], 50.00th=[ 33], 60.00th=[ 34],
| 70.00th=[ 34], 80.00th=[ 35], 90.00th=[ 68], 95.00th=[ 92],
| 99.00th=[ 326], 99.50th=[ 584], 99.90th=[ 1435], 99.95th=[ 1502],
| 99.99th=[ 1536]
bw ( KiB/s): min= 127, max= 2064, per=100.00%, avg=1433.52, stdev=37.13, samples=602
iops : min= 31, max= 516, avg=357.70, stdev= 9.29, samples=602
lat (msec) : 2=0.31%, 4=0.03%, 10=0.04%, 20=0.06%, 50=85.73%
lat (msec) : 100=9.35%, 250=2.90%, 500=1.05%, 750=0.07%, 1000=0.09%
cpu : usr=0.07%, sys=1.04%, ctx=13585, majf=0, minf=282
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 rwts: total=0,6761,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=1350KiB/s (1382kB/s), 1350KiB/s-1350KiB/s (1382kB/s-1382kB/s), io=26.4MiB (27.7MB), run=20034-20034msec
Disk stats (read/write):
sda: ios=0/6961, merge=0/188, ticks=0/24691, in_queue=24620, util=91.29%
[akimasa@alarmpi mountpoint]$ sudo fio -filename=./testtmp -direct=1 -rw=randwrite -bs=4k -size=1000M -numjobs=16 -runtime=20 -group_reporting -name=file1
file1: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
…
fio-3.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)][100.0%][w=1212KiB/s][w=303 IOPS][eta 00m:00s]
file1: (groupid=0, jobs=16): err= 0: pid=2547: Mon Mar 11 15:49:25 2019
write: IOPS=348, BW=1392KiB/s (1426kB/s)(27.6MiB/20313msec); 0 zone resets
clat (usec): min=1181, max=2296.1k, avg=45784.22, stdev=113933.76
lat (usec): min=1185, max=2296.1k, avg=45788.25, stdev=113933.93
clat percentiles (msec):
| 1.00th=[ 22], 5.00th=[ 27], 10.00th=[ 27], 20.00th=[ 28],
| 30.00th=[ 29], 40.00th=[ 29], 50.00th=[ 29], 60.00th=[ 31],
| 70.00th=[ 31], 80.00th=[ 32], 90.00th=[ 42], 95.00th=[ 73],
| 99.00th=[ 489], 99.50th=[ 776], 99.90th=[ 1888], 99.95th=[ 2106],
| 99.99th=[ 2299]
bw ( KiB/s): min= 128, max= 2327, per=100.00%, avg=1623.82, stdev=40.57, samples=556
iops : min= 32, max= 581, avg=405.26, stdev=10.13, samples=556
lat (msec) : 2=0.35%, 4=0.11%, 10=0.04%, 20=0.11%, 50=90.14%
lat (msec) : 100=5.49%, 250=1.91%, 500=0.86%, 750=0.45%, 1000=0.11%
cpu : usr=0.08%, sys=0.46%, ctx=14162, majf=0, minf=305
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 rwts: total=0,7070,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=1392KiB/s (1426kB/s), 1392KiB/s-1392KiB/s (1426kB/s-1426kB/s), io=27.6MiB (28.0MB), run=20313-20313msec
Disk stats (read/write):
sda: ios=0/7279, merge=0/8, ticks=0/27596, in_queue=27660, util=96.94%
[akimasa@alarmpi mountpoint]$ cd
[akimasa@alarmpi ~]$ sudo umount /home/akimasa/mountpoint
[akimasa@alarmpi ~]$ sudo mkfs.f2fs -f /dev/sda2
F2FS-tools: mkfs.f2fs Ver: 1.12.0 (2018-11-21)
Info: Disable heap-based policy
Info: Debug level = 0
Info: Trim is enabled
Info: [/dev/sda2] Disk Model: SD Transcend
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 30294016 (14792 MB)
Info: zone aligned segment0 blkaddr: 512
Info: format version with
"Linux version 4.19.25-2-ARCH (builduser@leming) (gcc version 8.2.1 20181127 (GCC)) #1 SMP PREEMPT Tue Feb 26 01:20:52 UTC 2019"
Info: [/dev/sda2] Discarding device
Info: This device doesn't support BLKSECDISCARD
Info: This device doesn't support BLKDISCARD
Info: Overprovision ratio = 1.650%
Info: Overprovision segments = 248 (GC reserved = 129)
Info: format successful
[akimasa@alarmpi ~]$ sudo mount /dev/sda2 mountpoint/
[akimasa@alarmpi ~]$ cd mountpoint/
[akimasa@alarmpi mountpoint]$ sudo fio -filename=./testtmp -direct=1 -rw=randwrite -bs=4k -size=1000M -numjobs=16 -runtime=20 -group_reporting -name=file1
file1: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
…
fio-3.13
Starting 16 processes
file1: Laying out IO file (1 file / 1000MiB)
Jobs: 16 (f=16): [w(16)][100.0%][w=1309KiB/s][w=327 IOPS][eta 00m:00s]
file1: (groupid=0, jobs=16): err= 0: pid=2588: Mon Mar 11 15:50:39 2019
write: IOPS=695, BW=2781KiB/s (2848kB/s)(54.4MiB/20021msec); 0 zone resets
clat (usec): min=1089, max=422480, avg=22966.77, stdev=15612.63
lat (usec): min=1093, max=422484, avg=22970.51, stdev=15612.67
clat percentiles (msec):
| 1.00th=[ 18], 5.00th=[ 19], 10.00th=[ 19], 20.00th=[ 20],
| 30.00th=[ 20], 40.00th=[ 21], 50.00th=[ 21], 60.00th=[ 21],
| 70.00th=[ 21], 80.00th=[ 23], 90.00th=[ 24], 95.00th=[ 40],
| 99.00th=[ 69], 99.50th=[ 86], 99.90th=[ 300], 99.95th=[ 372],
| 99.99th=[ 397]
bw ( KiB/s): min= 568, max= 3408, per=99.98%, avg=2779.55, stdev=44.26, samples=640
iops : min= 142, max= 852, avg=693.95, stdev=11.07, samples=640
lat (msec) : 2=0.39%, 4=0.02%, 10=0.01%, 20=37.73%, 50=57.36%
lat (msec) : 100=4.10%, 250=0.28%, 500=0.11%
cpu : usr=0.12%, sys=0.95%, ctx=27860, majf=0, minf=310
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 rwts: total=0,13919,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=2781KiB/s (2848kB/s), 2781KiB/s-2781KiB/s (2848kB/s-2848kB/s), io=54.4MiB (57.0MB), run=20021-20021msec
Disk stats (read/write):
sda: ios=0/13763, merge=0/0, ticks=0/18738, in_queue=18730, util=94.04%
[akimasa@alarmpi mountpoint]$ sudo fio -filename=./testtmp -direct=1 -rw=randwrite -bs=4k -size=1000M -numjobs=16 -runtime=20 -group_reporting -name=file1
file1: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
…
fio-3.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)][100.0%][w=2116KiB/s][w=529 IOPS][eta 00m:00s]
file1: (groupid=0, jobs=16): err= 0: pid=2607: Mon Mar 11 15:51:04 2019
write: IOPS=644, BW=2579KiB/s (2641kB/s)(51.4MiB/20388msec); 0 zone resets
clat (usec): min=1091, max=855416, avg=24717.84, stdev=36849.00
lat (usec): min=1095, max=855420, avg=24721.44, stdev=36849.03
clat percentiles (msec):
| 1.00th=[ 19], 5.00th=[ 19], 10.00th=[ 19], 20.00th=[ 20],
| 30.00th=[ 20], 40.00th=[ 21], 50.00th=[ 21], 60.00th=[ 21],
| 70.00th=[ 22], 80.00th=[ 23], 90.00th=[ 23], 95.00th=[ 25],
| 99.00th=[ 108], 99.50th=[ 262], 99.90th=[ 592], 99.95th=[ 844],
| 99.99th=[ 852]
bw ( KiB/s): min= 149, max= 3296, per=100.00%, avg=2625.05, stdev=56.50, samples=640
iops : min= 35, max= 824, avg=655.40, stdev=14.14, samples=640
lat (msec) : 2=0.34%, 4=0.04%, 10=0.04%, 20=37.87%, 50=57.97%
lat (msec) : 100=2.59%, 250=0.63%, 500=0.31%, 750=0.13%, 1000=0.08%
cpu : usr=0.14%, sys=0.81%, ctx=26326, majf=0, minf=298
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 rwts: total=0,13147,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=2579KiB/s (2641kB/s), 2579KiB/s-2579KiB/s (2641kB/s-2641kB/s), io=51.4MiB (53.8MB), run=20388-20388msec
Disk stats (read/write):
sda: ios=0/13141, merge=0/0, ticks=0/19400, in_queue=19470, util=95.13%
[akimasa@alarmpi mountpoint]$