我正在尝试将进程的带宽限制为内存。我有 2 个 cgroup(cgroup1 和 cgroup2),其中包含进程。我可以限制每个 cgroup 使用的内存量。但是,如果它们不断调用malloc()
并使free()
内存总线饱和,它们就会相互影响。
我该如何限制这个?我没有两个不同的内存节点,也没有 NUMA。
我正在尝试将进程的带宽限制为内存。我有 2 个 cgroup(cgroup1 和 cgroup2),其中包含进程。我可以限制每个 cgroup 使用的内存量。但是,如果它们不断调用malloc()
并使free()
内存总线饱和,它们就会相互影响。
我该如何限制这个?我没有两个不同的内存节点,也没有 NUMA。
这是不可能的。支持的子系统有:
最近的一篇系统研究论文介绍了一种新的控制器来实现这一点,并提供了相关的代码。
另一种方法是映射一个文件,然后blkio
对其进行设置(不确定这是否可行)。然后,让您的程序从文件中读取/写入变量,而不是使用malloc
(丑陋!)。