我想仅关闭一个进程的交换。对于其他进程,交换应该像往常一样工作。
我如何用 cgroups 实现这个?
我正在运行 64 位 Xubuntu 14.04,Linux 版本 3.8.0-25,内存为 8GB。
我有一个脚本(在 MATLAB 中,它的价值)一次加载大量数据文件(~23k),总共大约 45G 的数据。我遇到的问题是在每个文件加载后,它仍保留在文件缓存中。Linux 似乎更喜欢将这些文件缓存在内存中,而不是任何其他内存内容,导致几乎所有其他内容都被强制交换,导致我的系统缓慢爬行。我每秒读取几个文件,所以这发生得相当快。我只读取每个文件一次,所以我不需要文件在我完成后保持缓存。
我试过关闭交换,这在一定程度上有效,但这似乎是一个糟糕的解决方案(并且当另一个程序开始使用过多内存时它已经失败了一次)。有没有办法可以限制 linux 用于文件缓存的 RAM 量?