Btrfs vs F2FS ベンチマーク
===
## もともとのシーケンシャルリード性能
```
/dev/second/second:
Timing cached reads: 20864 MB in 1.99 seconds = 10490.45 MB/sec
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
Timing buffered disk reads: 4636 MB in 3.00 seconds = 1544.95 MB/sec
```
## 今回使ったfioのjobfile
```
[global]
filename=/mnt/fiotest
randrepeat=1
ioengine=libaio
bs=4k
ba=4k
size=4G
gtod_reduce=1
norandommap
iodepth=64
[bench]
rw=randwrite
stonewall
```
参考: https://syucream.hatenablog.jp/entry/2013/12/19/221559
## Btrfs + zstd
```
sudo mkfs.btrfs /dev/second/second
sudo mount /dev/second/second -o rw,relatime,ssd_spread,compress=zstd,space_cache /mnt
```
```
bench: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.23
Starting 1 process
bench: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [w(1)][100.0%][eta 00m:00s]
bench: (groupid=0, jobs=1): err= 0: pid=1715088: Tue Oct 20 18:37:01 2020
write: IOPS=71.2k, BW=278MiB/s (292MB/s)(4096MiB/14734msec); 0 zone resets
bw ( KiB/s): min=45704, max=938192, per=100.00%, avg=303974.81, stdev=213490.82, samples=27
iops : min=11426, max=234548, avg=75993.78, stdev=53372.68, samples=27
cpu : usr=8.14%, sys=45.17%, ctx=121088, majf=0, minf=5
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=278MiB/s (292MB/s), 278MiB/s-278MiB/s (292MB/s-292MB/s), io=4096MiB (4295MB), run=14734-14734msec
```
## F2FS
```
sudo mkfs.f2fs /dev/second/second -f
sudo mount /dev/second/second -o rw,relatime /mnt
```
```
bench: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.23
Starting 1 process
bench: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [w(1)][-.-%][w=1146MiB/s][w=293k IOPS][eta 00m:00s]
bench: (groupid=0, jobs=1): err= 0: pid=1752006: Tue Oct 20 18:40:06 2020
write: IOPS=290k, BW=1133MiB/s (1188MB/s)(4096MiB/3616msec); 0 zone resets
bw ( MiB/s): min= 866, max= 1233, per=99.68%, avg=1129.17, stdev=147.13, samples=7
iops : min=221910, max=315816, avg=289067.14, stdev=37664.51, samples=7
cpu : usr=23.82%, sys=68.63%, ctx=703, majf=0, minf=6
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=1133MiB/s (1188MB/s), 1133MiB/s-1133MiB/s (1188MB/s-1188MB/s), io=4096MiB (4295MB), run=3616-3616msec
Disk stats (read/write):
dm-2: ios=0/2332, merge=0/0, ticks=0/25993, in_queue=25992, util=44.67%, aggrios=0/7789, aggrmerge=0/11, aggrticks=0/92840, aggrin_queue=92841, aggrutil=47.02%
nvme0n1: ios=0/7789, merge=0/11, ticks=0/92840, in_queue=92841, util=47.02%
```
## F2FS + zstd
```
sudo mkfs.f2fs /dev/second/second -O extra_attr,compression -f
sudo mount /dev/second/second -o rw,relatime,compress_algorithm=zstd /mnt
```
```
bench: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.23
Starting 1 process
bench: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [w(1)][-.-%][w=980MiB/s][w=251k IOPS][eta 00m:00s]
bench: (groupid=0, jobs=1): err= 0: pid=1802915: Tue Oct 20 18:44:28 2020
write: IOPS=269k, BW=1053MiB/s (1104MB/s)(4096MiB/3891msec); 0 zone resets
bw ( MiB/s): min= 909, max= 1284, per=100.00%, avg=1064.61, stdev=127.18, samples=7
iops : min=232766, max=328892, avg=272540.00, stdev=32557.61, samples=7
cpu : usr=21.70%, sys=63.57%, ctx=965, majf=0, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=1053MiB/s (1104MB/s), 1053MiB/s-1053MiB/s (1104MB/s-1104MB/s), io=4096MiB (4295MB), run=3891-3891msec
Disk stats (read/write):
dm-2: ios=0/2583, merge=0/0, ticks=0/40363, in_queue=40363, util=43.55%, aggrios=0/7692, aggrmerge=0/6, aggrticks=0/118840, aggrin_queue=118840, aggrutil=42.63%
nvme0n1: ios=0/7692, merge=0/6, ticks=0/118840, in_queue=118840, util=42.63%
```
## F2FS + lzo
```
sudo mount /dev/second/second -o rw,relatime,compress_algorithm=lzo /mnt
```
```
bench: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.23
Starting 1 process
bench: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [w(1)][100.0%][w=927MiB/s][w=237k IOPS][eta 00m:00s]
bench: (groupid=0, jobs=1): err= 0: pid=1832153: Tue Oct 20 18:46:50 2020
write: IOPS=240k, BW=938MiB/s (983MB/s)(4096MiB/4369msec); 0 zone resets
bw ( KiB/s): min=855192, max=1286056, per=100.00%, avg=985448.00, stdev=141846.34, samples=8
iops : min=213798, max=321514, avg=246362.00, stdev=35461.58, samples=8
cpu : usr=21.59%, sys=62.20%, ctx=1089, majf=0, minf=6
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: bw=938MiB/s (983MB/s), 938MiB/s-938MiB/s (983MB/s-983MB/s), io=4096MiB (4295MB), run=4369-4369msec
Disk stats (read/write):
dm-2: ios=0/2529, merge=0/0, ticks=0/38906, in_queue=38906, util=40.19%, aggrios=0/8128, aggrmerge=0/5, aggrticks=0/130612, aggrin_queue=130612, aggrutil=41.60%
nvme0n1: ios=0/8128, merge=0/5, ticks=0/130612, in_queue=130612, util=41.60%
```