我正在使用 Debian 8.0 x64,配备 72 GB RAM,其中 4 个驱动器配置为软件 RAID 0。
Linux s1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1(2015-05-24)x86_64 GNU/Linux
我尝试在实际写入之前将脏页设置为 2GB 缓存。我还尝试将“dirty_ratio”和“dirty_background_ratio”设置为使用 50% 的 RAM,但这也不起作用。pdflush 守护程序应每分钟启动一次,脏页的过期时间设置为 10 分钟。
我使用“iotop”检查了磁盘 I/O,结果显示磁盘写入活动较多。此外,“cat /proc/meminfo”显示“Dirty”值正在变小(可能是由于写入)。在检查之前,我运行了“sync”和“drop_caches”。我使用“dd”命令进行了测试,写入了一个 1GB 的零文件。
- 设置如下:
echo 0 > /proc/sys/vm/dirty_background_ratio
echo 2147483648 > /proc/sys/vm/dirty_background_bytes
echo 0 > /proc/sys/vm/dirty_ratio
回显 2147483648 > /proc/sys/vm/dirty_bytes
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
echo 30000 > /proc/sys/vm/dirty_expire_centisecs
- 安装选项:
/dev/md0 on /test 类型 ext4 (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
,您将看到写入缓存正常工作。