如何在Linux中创建系统调用来清理页面缓存?

时间:2016-05-24 11:13:02

标签: c linux linux-kernel

我想知道如何在Linux中创建系统调用来清理页面缓存。

这可能不是清理页面缓存的有效方法,但我想通过使用系统调用来完成此任务,以便如何做到这一点?

2 个答案:

答案 0 :(得分:1)

没有给出一个体面的答案 什么时候需要不到5分钟的研究? sysctl.2手册页说明了。 如果内核配置了CONFIG_SYSCTL_SYSCALL 然后它可能,但手册页指示 使用/ proc / sys / interface是首选。 鉴于开放和写入的缓慢关闭 系统调用会更快的假设似乎是合理的。 但是因为它可以并且可能被禁用,哦。 通过函数posix_fadvise一次为一个文件描述符 内核缓存块可以进行丢弃请求。 如果已经fsync,那么内核可能会遵守。 这是相关的。祝你好运。

答案 1 :(得分:0)

您可以通过echo 3 >/proc/sys/vm/drop_caches删除内核缓存。了解这是如何实现的,然后在系统调用中执行相同的操作。阅读有关如何向Linux添加系统调用的教程以获取详细信息。