저는 SMR(Shingled Magnetic Recording) 디스크를 사용하고 있습니다. 이 기술은 비순차적 쓰기 작업에서는 제대로 수행되지 않는 것으로 알려져 있습니다.
순차적 쓰기 작업은 매우 빠릅니다.
fio --name TEST --eta-newline=5s --filename=temp.file --rw=write --size=2g --io_size=10g --blocksize=1024k --ioengine^Cibaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
...
WRITE: bw=121MiB/s (127MB/s), 121MiB/s-121MiB/s (127MB/s-127MB/s), io=7276MiB (7629MB), run=60217-60217msec
비순차적 쓰기 작업이 느립니다.
fio --name TEST --eta-newline=5s --filename=temp.file --rw=randwrite --size=2g --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=32 --runtime=60 --group_reporting
...
WRITE: bw=510KiB/s (522kB/s), 510KiB/s-510KiB/s (522kB/s-522kB/s), io=30.1MiB (31.6MB), run=60427-60427msec
비율은 237이다.
나는 다음을 사용하고 있습니다 :
echo 30 > /proc/sys/vm/vfs_cache_pressure
echo 100 > /proc/sys/vm/dirty_ratio
echo 100 > /proc/sys/vm/dirty_background_ratio
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
echo 360000 > /proc/sys/vm/dirty_expire_centisecs
mount -o noatime,nodiratime
rsync
격렬한 활동 중에 나는 다음을 관찰했습니다.
- 읽기
collectl
품질은 좋지만 쓰기 품질은 좋지 않습니다. - 더티 필드는
/proc/meminfo
3G를 넘지 않으며, 버프/캐시는 12G 정도이다.
쓰기 작업을 지원하고 읽기 작업이 캐시에서 작성된 페이지를 플러시하지 못하도록 페이지 캐시의 균형을 맞추고 싶습니다. rsync
쓰기 시퀀스의 캐시 그룹화를 통해 성능이 향상되기를 바랍니다 .
그러한 불균형을 달성할 수 있는 방법이 있습니까? 나는 이것이 단지 테스트를 위한 훌륭한 조정이 아니라는 것을 알고 있습니다.