Linux 不使用NUMA限制内存带宽cGroup

Linux 不使用NUMA限制内存带宽cGroup,linux,memory-management,kernel,embedded-linux,cgroups,Linux,Memory Management,Kernel,Embedded Linux,Cgroups,我试图将进程的带宽限制为内存。 我有两个cgroup(cgroup 1和cgroup 2),其中包含进程。我可以限制每个cgroup使用的内存量。 但是如果它们继续调用malloc()和free()并使内存总线饱和,它们就会相互影响 我如何限制这一点?我没有两个不同的内存节点,也没有NUMA。这是不可能的。它们是: blkio-此子系统设置对块设备(如物理驱动器(磁盘、固态、USB等))的输入/输出访问权限的限制 cpu-此子系统使用调度程序提供对cpu的cgroup任务访问 cpuacct-

我试图将进程的带宽限制为内存。 我有两个cgroup(cgroup 1和cgroup 2),其中包含进程。我可以限制每个cgroup使用的内存量。 但是如果它们继续调用
malloc()
free()
并使内存总线饱和,它们就会相互影响

我如何限制这一点?我没有两个不同的内存节点,也没有NUMA。

这是不可能的。它们是:

  • blkio-此子系统设置对块设备(如物理驱动器(磁盘、固态、USB等))的输入/输出访问权限的限制
  • cpu-此子系统使用调度程序提供对cpu的cgroup任务访问
  • cpuacct-此子系统自动生成关于cgroup中任务使用的CPU资源的报告
  • cpuset-该子系统将单个CPU(在多核系统上)和内存节点分配给cgroup中的任务
  • 设备-此子系统允许或拒绝通过cgroup中的任务访问设备
  • 冷冻库-此子系统暂停或恢复cgroup中的任务
  • 内存-此子系统对cgroup中的任务的内存使用设置限制,并生成关于这些任务使用的内存资源的自动报告
  • net_cls-此子系统使用类标识符(classid)标记网络数据包,该类标识符允许Linux流量控制器(tc)识别来自特定cgroup任务的数据包
  • net_prio-此子系统提供了一种方法,可以动态设置每个网络接口的网络流量优先级
  • ns-名称空间子系统
最近的一个系统引入了一个新的控制器来实现这一点,并制作了相关的代码


另一种方法是mmap一个文件,然后在其上设置
blkio
设置(不确定这是否可行)。然后,让您的程序从文件中读/写变量,而不是使用
malloc
(丑陋!)。

我确实注意到了您上面所说的。我希望像你这样的人会注意到一篇关于可能的解决方案的论文。非常感谢