mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git
synced 2024-11-23 17:53:39 +08:00
03aa49e495
Overview ======== This option allows zoned block device users to configure GC reserved and overprovision area manually according to their demands on performance of sustained write latency and WAF. Problem ======= The overprovision segments that mkfs generates are mostly occupied by GC reserved. This degrades WAF performance. Experiment ========== The following experiment evaluated the application of configurable reserved. The experimental environment is as follows. System info - 4.2Ghz, 8 core CPU - 64GiB Memory Device info - a conventional null_blk with 448MiB capacity(meta area) and - a sequential null_blk with 953 zones of 64MiB Format - as-is (find out ovp ratio): mkfs.f2fs <conv null_blk> -c <seq null_blk> -m Info: Overprovision ratio = 3.700% Info: Overprovision segments = 1152 (GC reserved = 1088) - config rsvd: mkfs.f2fs <conv null_blk> -c <seq null_blk> -m -Z 8 -o 2.965 Info: Overprovision ratio = 2.965% Info: Overprovision segments = 1152 (GC reserved = 256) Mount - mount <conv null_blk> <mount point> Fio script - fio --rw=randwrite --bs=4k --ba=4k --filesize=58630m --norandommap --overwrite=1 --name=job1 --filename=<mount point>/sustain --time_based --runtime=2h WAF calculation - (IOs on conv. null_blk + IOs on seq. null_blk) / random write IOs Conclusion ========== In the experiment, it can be shown that reducing the reserved segments decreases WAF to 10% (from 222 to 23) although it triggers checkpoint more frequently during gc. With direct IO, the WAF of as-is gets much higher. In other words, a user can configure more reserved segments for lower GC latency or allocate less reserved segments for lower WAF on the same number of OP segments. Signed-off-by: Yonggil Song <yonggil.song@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> |
||
---|---|---|
.. | ||
android_config.h | ||
f2fs_fs.h | ||
quota.h |