我的盒子上有两个进程在运行 => A 和 B。
每当由于进程 A 将大文件写入磁盘而导致磁盘 I/O 活动繁重时,我看到进程 B 中的文件写入会间歇性地停止。我注意到我的 linux 内核上有以下虚拟内存设置。
vm.dirty_background_ratio = 5
vm.dirty_background_bytes = 0
vm.dirty_ratio = 20
vm.dirty_bytes = 0
vm.dirty_writeback_centisecs = 500
vm.dirty_expire_centisecs = 3000
文档指出,“dirty_background_ratio”是在内核后台刷新线程启动以将字节刷新到磁盘之前,脏页占用的内存百分比。鉴于我有 64 GB 的内存,当脏页缓存大小达到 ~ 3.2 GB 时,这个后台刷新应该开始,我看到进程 A 正在写入磁盘时确实是这种情况。
但是,一旦后台刷新开始,进程 B 中的文件写入就会开始间歇性地停止大约 10-20 秒的时间。1)鉴于此磁盘刷新是在后台发生的,鉴于所有写入首先进入页面缓存而不是直接写入磁盘,为什么进程 B 的写入会停止?2) 是否有任何系统级参数来防止这些缓冲写入停顿的发生?