AFAIK在Linux上的所有磁盘读取进入页面caching。
有没有办法阻止读取(由备份进程完成)进入页面caching?
想像:
- 服务器运行良好,因为大多数操作不需要触摸磁盘,因为有足够的内存可用。
- 现在备份过程开始,并做了大量的阅读。 读取字节进入内存(页面caching),虽然没有人想在接下来的几个小时内再次读取相同的字节。
- 备份数据填满了内存,caching中的更多重要页面被删除。
- 由于更多操作需要接触磁盘,服务器性能变差,因为相关页面已从caching中删除。
我的首选解决scheme
- 告诉linux,备份过程完成的读取不需要存储在页面caching中。
- 如果您重新使用rsync ,则会根据此问题提供标记
--drop-cache
- nocache实用程序
尽量减少应用程序对Linux文件系统缓存的影响
用例:不应干扰缓存当前状态的备份进程。
- 使用dd根据这个问题有直接的I / O到低音缓存
- dd也有选项
nocache
选项,查看命令info coreutils 'dd invocation'
以获取详细信息