问题标签 [cgroups]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
355 浏览

linux-kernel - cgroup真的能保证进程互不干扰吗?

我是 cgroup 的新手,我正在尝试用它来控制我的 Linux 服务器上的两个 C++ 进程。

我将每个进程的mem_limit设置为1G,也就是说它最多可以消耗1GB内存,对吧?

但我认为 cgroup 并不能像 VM 那样保证真正的隔离,例如,一个进程仍然可以读取(或写入)另一个进程的内存。由于 cgroup 没有为它们分配任何东西,这两个进程之间也存在争夺空闲内存块的竞争。

  • 我对吗?
  • cpu_set 中的情况如何?
  • 考虑到隔离,cgroup 与 VM 有什么区别?

我用谷歌搜索了它,但只得到了很多“docker vs vm”,这真的不是我想要的。

cgroups 实现中的任何提示都非常有帮助。

0 投票
1 回答
18560 浏览

linux - 使用 Cgroups 限制 cpu 使用率

我正在尝试使用 cgroups 来限制 CPU 使用率。我正在使用本指南 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html

我的 /etc/cgconfig.conf 文件如下

我的 cgrules.conf 如下

尽管当我尝试运行时:

我看到用户 100% 的 cpu 使用率属于组 wheel 和 test1

我已经检查了服务 cgconfig 状态的服务并且已启动

谁能告诉我我做错了什么?非常感谢

0 投票
1 回答
1129 浏览

linux - 使用 cgroups 限制 IO 使用

我正在尝试使用 cgroups 在我的服务器上限制 Io 的使用。

这是我的分区表信息:

这是我的文件系统结构:

当我尝试执行以下命令时:

echo "8:1 10485760" > /cgroup/blkio/test2/blkio.throttle.write_bps_device

我得到的输出为:

这是我的 cgroups 配置:

为什么我不能限制 /dev/sda1 IO 的使用?

0 投票
1 回答
10288 浏览

linux - Docker 关于 cgroup 交换限制的警告,memory.use_hierarchy

我从“sudo docker -d”收到此警告:

警告:您的内核不支持 cgroup 交换限制。

即使按照步骤操作(如在此链接中):

  • 修改 /etc/default/grub 中的以下几行(我都做了很好的衡量)

    RUB_CMDLINE_LINUX_DEFUALT="cgroup_enable=内存交换帐户=1" GRUB_CMDLINE_LINUX="cgroup_enable=内存交换帐户=1"

  • 然后通过 update-grub/reboot

    须藤更新-grub;须藤重启

我的问题是:

1)我应该担心这个警告吗?

我想我应该是因为我试图在强制执行内存限制很重要的用例中使用 docker 容器。

2) 更改内存 use_hierarchy 设置是个好主意吗?-- 或 -- 解决此问题的最佳方法是什么?

我在“dmesg”中看到了这个警告。我不确定尝试将 use_hierarchy 设置更改为 '1' 是否是个好主意(也不知道如何做到这一点)

cgroup:“内存”需要在根目录上将 use_hierarchy 设置为 1。”

或者,有没有更好的方法来解决这个问题?我只是在这里开枪,也许内核升级会有所帮助?我看到一些 3.16 内核升级是可能的。

环境: 我正在运行 Ubuntu 14.04 x64(内核:3.13.0-43-generic x86_64)和 docker 版本 1.0.1

其他注意事项: 我已经阅读了其他关于类似 docker/cgroup 错误的在线帮助文​​章,这些错误说安装 apparmor_parser 可以修复它。但是,在我的系统上,apparmor 已安装并且似乎可以正常启动(根据 dmesg)。此外,此文件存在:/sbin/apparmor_parser

此外,我对 linux 服务器上的管理任务还比较陌生。

0 投票
2 回答
1687 浏览

linux - 在 Linux 上使用 cgroups 控制内存使用

我正在尝试使用 cgroups 来停止实际使用过多内存的程序,同时让它们运行,如果它们只是分配而不实际使用大量内存。但是,它似乎不起作用;有什么建议么?在 Ubuntu 机器上,我按如下方式设置我的 cgroup [1]:

我正在使用以下程序(回答“否”应该有效,应该停止回答“是”)。

[1] https://askubuntu.com/questions/94619/how-to-set-cpu-limit-for-given-process-permanently-cpulimit-and-nice-dont-work

0 投票
3 回答
1753 浏览

linux - 如何使用 cgconfig.d 覆盖默认 cgroup cgconfig.conf?

与 libcgroup 一起提供的默认 cgroup 配置文件 cgconfig.conf 包含:

我想使用这样的东西:

我不想覆盖 cgconfig.conf,所以我尝试在新文件 abc.conf 中使用具有上述设置的 cgconfig.d 并将其放在 cgconfig.d 中。但是这些新设置对我不起作用。任何人都知道上面的配置有什么问题。

0 投票
1 回答
1167 浏览

linux - 限制没有 NUMA 的内存带宽 cgroups

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

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

0 投票
1 回答
1120 浏览

c++ - Cgroup 使用限制资源

我的目标:为用户提供一种方法来限制给定进程 (C++) 的 CPU、内存等资源。

所以有人建议我使用看起来像一个理想实用程序的 Cgroups。

在做了一些研究后,我有一个担忧:

当我们利用 memory.limit_in_bytes 来限制给定进程的内存使用时,有没有办法处理进程中的内存不足异常?我看到控制组提供了一个名为“memory.oom_control”的参数,当启用该参数时,它会杀死请求比允许更多内存的进程。禁用时,它只会暂停该过程。

我想要一种方法让进程知道它请求的内存比预期的多,并且应该抛出内存异常。这是为了让进程优雅地退出。

cgroups 是否提供这种行为?

cgroup 也适用于所有版本的 linux 吗?我主要对 RHEL 5+、CENTOS 6+ 和 ubuntu 12+ 机器感兴趣。

任何帮助表示赞赏。

谢谢

0 投票
1 回答
253 浏览

linux - “mount -t cgroup -o cpuset none /cpuset”中的“无”是什么意思

在练习 cgroup 时,我们需要 mount likemount -t cgroup -o cpuset none /cpuset

你能解释一下这里的意义none吗?

似乎它只是一个名称,我可以将其设置为任何字符串,对吧?

是否有任何基于它的文件、文件夹或文件内容?

0 投票
1 回答
1513 浏览

centos - Centos 7 和 systemd:CPU 配额?

操作系统版本信息:

test.slice 的配置如下:

我像这样创建了另一个文件(称为 testhigh.slice)并给它 CPU 份额 = 128。当我在任一切片中启动 CPU 饥饿进程时,我看到 CPU 按比例分配,正如预期的那样。

但是,似乎没有办法实际将一个切片的 CPU 限制为一个常数,例如 10%。systemd无法识别 CPUQuota 选项:

原则上,能够精确地分配资源会很棒,但现在我无法让它发挥作用。请帮忙; 如果可能的话,我想要一个来自 systemd 框架内部的解决方案。