Linux 为单个命令禁用磁盘缓存

Kri*_*ves 7 linux performance hard-drive cache buffer

我们的服务器运行良好,但是当备份或其他扫描过程运行时,它会占用整个服务器。类似的东西clamd会运行并扫描许多文件。虽然我们预计性能会很慢,但它正在扼杀我们的缓存,最终结果是我们没有得到一个可以做任何事情的系统。

有没有办法为单个命令禁用磁盘/磁盘缓存?这个想法是像这样运行它:

# ./nocache clamd
Run Code Online (Sandbox Code Playgroud)

然后,在运行时,clamd它不会在读取系统上的所有文件时冲击已准备好的缓存。

Dav*_*rtz 2

它必须在程序本身中实现。如果clamd尚未执行此操作,您可以clamd通过添加对posix_fadvise(... POSIX_FADV_NOREUSE)或 等函数的调用madvise(... MADV_DONTNEED)(如果它内存映射文件)进行修改,以避免不必要的大缓存占用。但它仍然会将文件系统元数据从缓存中推出。对此你无能为力。