我想知道如何在Linux中创建系统调用来清理页面缓存。
这可能不是清理页面缓存的有效方法,但我想通过使用系统调用来完成此任务,以便如何做到这一点?
答案 0 :(得分:1)
没有给出一个体面的答案 什么时候需要不到5分钟的研究? sysctl.2手册页说明了。 如果内核配置了CONFIG_SYSCTL_SYSCALL 然后它可能,但手册页指示 使用/ proc / sys / interface是首选。 鉴于开放和写入的缓慢关闭 系统调用会更快的假设似乎是合理的。 但是因为它可以并且可能被禁用,哦。 通过函数posix_fadvise一次为一个文件描述符 内核缓存块可以进行丢弃请求。 如果已经fsync,那么内核可能会遵守。 这是相关的。祝你好运。
答案 1 :(得分:0)
您可以通过echo 3 >/proc/sys/vm/drop_caches
删除内核缓存。了解这是如何实现的,然后在系统调用中执行相同的操作。阅读有关如何向Linux添加系统调用的教程以获取详细信息。