Linux 通过单个命令禁用磁盘缓存

Linux 通过单个命令禁用磁盘缓存

我们的服务器性能不错,但当备份或其他扫描进程运行时,它将使整个服务器瘫痪。类似的东西clamd将运行并扫描许多文件。虽然我们预计性能会很慢,但它会破坏我们的缓存,最终结果是我们没有得到一个可以做任何事情的系统。

有没有办法通过单个命令禁用磁盘缓存? 这个想法可以像这样运行:

# ./nocache clamd

这样,在运行时clamd它就不会在读取系统上的所有文件时破坏已准备好的缓存。

答案1

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

答案2

这并不是您真正想要的答案,但我们只是使用 ionice 进行备份和扫描,因此它们不会影响服务器上的其他程序。

ionice -c3 clamd

相关内容