防止备份读取进入Linux页面缓存

6
据我所知,在Linux上所有的磁盘读取都会进入页面缓存。
有没有办法防止备份过程中的读取进入页面缓存?
想象一下:
- 一个服务器运行良好,因为大多数操作不需要触及磁盘,因为有足够的内存可用。 - 现在备份进程开始并进行大量读取。读取的字节进入内存(页面缓存),即使在接下来的几个小时中没有人需要再次读取相同的字节。 - 备份数据填满了内存,并且更重要的缓存页面被删除了。 - 由于相关页面从缓存中删除,服务器性能变差,因为需要更多的操作触及磁盘。
我的首选解决方案:
告诉Linux,备份过程中的读取不需要存储在页面缓存中。
1个回答

5
  • 如果您使用rsync,可以使用标志--drop-cache,参考这个问题
  • nocache实用程序可最小化应用程序对Linux文件系统缓存的影响

使用案例:备份进程不应干扰缓存的当前状态。

  • 如果使用dd,可以通过直接I/O绕过缓存,参考这个问题
  • dd还有nocache选项,请查看命令info coreutils 'dd invocation'获取详细信息

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接