如何在Linux中定期丢弃内存缓存?

时间:2014-03-10 06:37:26

标签: linux caching linux-kernel

处理系统测量项目时,需要我定期删除缓存以获得准确的数字(因为缓存会改变结果)。目前,我可以使用以下方法手动删除缓存:

echo 3 > /proc/sys/vm/drop_caches

但是,我希望它能够每微秒自动降低一次。我应该使用什么命令?

1 个答案:

答案 0 :(得分:3)

您可以创建自己的命令来执行此操作,即编写程序来执行此操作。例如,您可以执行以下操作:

while (1) {
    if ((fp = fopen("/proc/sys/vm/drop_caches", "r")) == NULL) {
        /* error handler */
    }
    fprintf(fp, "3\n");
    fclose(fp);

    nanosleep(...); /* See nanosleep(2) */
}

在您的程序中,并使其成为守护进程。