불균형한 페이지 캐시는 쓰기 활동을 선호합니다.

불균형한 페이지 캐시는 쓰기 활동을 선호합니다.

저는 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격렬한 활동 중에 나는 다음을 관찰했습니다.

  1. 읽기 collectl품질은 좋지만 쓰기 품질은 좋지 않습니다.
  2. 더티 필드는 /proc/meminfo3G를 넘지 않으며, 버프/캐시는 12G 정도이다.

쓰기 작업을 지원하고 읽기 작업이 캐시에서 작성된 페이지를 플러시하지 못하도록 페이지 캐시의 균형을 맞추고 싶습니다. rsync쓰기 시퀀스의 캐시 그룹화를 통해 성능이 향상되기를 바랍니다 .

그러한 불균형을 달성할 수 있는 방법이 있습니까? 나는 이것이 단지 테스트를 위한 훌륭한 조정이 아니라는 것을 알고 있습니다.

관련 정보