쓰기 캐시 설정이 작동하지 않습니다.

쓰기 캐시 설정이 작동하지 않습니다.

저는 소프트웨어 RAID 0으로 구성된 4개의 드라이브와 72GB RAM을 갖춘 Debian 8.0 x64를 사용하고 있습니다.

Linux s1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux

실제 쓰기 전에 더티 페이지를 2GB 캐시로 설정해 보았습니다. 또한 RAM의 50%를 사용하도록 "dirty_ratio" 및 "dirty_Background_ratio" 설정을 시도했지만 역시 작동하지 않았습니다. pdflush 데몬은 1분마다 시작되어야 하며 더티 페이지의 만료 시간은 10분으로 설정되었습니다.

"iotop"을 사용하여 디스크 I/O를 확인했는데 디스크 쓰기 활동이 높은 것으로 나타났습니다. 또한 "cat /proc/meminfo"는 "Dirty" 값이 점점 작아지는 것을 보여줍니다(아마도 쓰기로 인해). 확인하기 전에 "sync"와 "drop_caches"를 실행했습니다. 0으로 구성된 1GB 파일을 작성하는 "dd" 명령을 사용하여 테스트했습니다.

  • 설정은 다음과 같습니다.

에코 0 > /proc/sys/vm/dirty_Background_ratio

에코 2147483648 > /proc/sys/vm/dirty_Background_bytes

에코 0 > /proc/sys/vm/dirty_ratio

에코 2147483648 > /proc/sys/vm/dirty_bytes

에코 6000 > /proc/sys/vm/dirty_writeback_centisecs

에코 30000 > /proc/sys/vm/dirty_expire_centisecs

  • 마운트 옵션:

/test 유형 ext4의 /dev/md0(rw,noatime,nodiratime,nobarrier,stripe=512)

제안?

답변1

생성해야 하는 파일의 md/stripe_cache_size를 늘리십시오.

#/etc/udev/rules.d/83-md-stripe-cache.rules
KERNEL=="md*", ACTION=="add", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"

Raid-6에서 저에게 효과적이었습니다.

그리고 x64 시스템에서 문제가 발생했기 때문에 더티 비율을 줄이는 것이 좋습니다. 저는 이 설정을 사용합니다.

에 추가하다 /etc/sysctl.conf

vm.dirty_bytes = 16777216 #16Mb
vm.dirty_background_bytes = 835584 #mb

답변2

dd이 테스트에는 사용하지 마십시오 . 다음과 같은 다른 명령을 사용하면 cp쓰기 캐시가 제대로 작동하는 것을 볼 수 있습니다.

관련 정보