问题标签 [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.
linux-kernel - cgroup真的能保证进程互不干扰吗?
我是 cgroup 的新手,我正在尝试用它来控制我的 Linux 服务器上的两个 C++ 进程。
我将每个进程的mem_limit设置为1G,也就是说它最多可以消耗1GB内存,对吧?
但我认为 cgroup 并不能像 VM 那样保证真正的隔离,例如,一个进程仍然可以读取(或写入)另一个进程的内存。由于 cgroup 没有为它们分配任何东西,这两个进程之间也存在争夺空闲内存块的竞争。
- 我对吗?
- cpu_set 中的情况如何?
- 考虑到隔离,cgroup 与 VM 有什么区别?
我用谷歌搜索了它,但只得到了很多“docker vs vm”,这真的不是我想要的。
cgroups 实现中的任何提示都非常有帮助。
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 状态的服务并且已启动
谁能告诉我我做错了什么?非常感谢
linux - 使用 cgroups 限制 IO 使用
我正在尝试使用 cgroups 在我的服务器上限制 Io 的使用。
这是我的分区表信息:
这是我的文件系统结构:
当我尝试执行以下命令时:
echo "8:1 10485760" > /cgroup/blkio/test2/blkio.throttle.write_bps_device
我得到的输出为:
这是我的 cgroups 配置:
为什么我不能限制 /dev/sda1 IO 的使用?
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 服务器上的管理任务还比较陌生。
linux - 在 Linux 上使用 cgroups 控制内存使用
我正在尝试使用 cgroups 来停止实际使用过多内存的程序,同时让它们运行,如果它们只是分配而不实际使用大量内存。但是,它似乎不起作用;有什么建议么?在 Ubuntu 机器上,我按如下方式设置我的 cgroup [1]:
我正在使用以下程序(回答“否”应该有效,应该停止回答“是”)。
linux - 如何使用 cgconfig.d 覆盖默认 cgroup cgconfig.conf?
与 libcgroup 一起提供的默认 cgroup 配置文件 cgconfig.conf 包含:
我想使用这样的东西:
我不想覆盖 cgconfig.conf,所以我尝试在新文件 abc.conf 中使用具有上述设置的 cgconfig.d 并将其放在 cgconfig.d 中。但是这些新设置对我不起作用。任何人都知道上面的配置有什么问题。
linux - 限制没有 NUMA 的内存带宽 cgroups
我正在尝试将进程的带宽限制为内存。我有 2 个 cgroup(cgroup1 和 cgroup2),其中包含进程。我可以限制每个 cgroup 使用的内存量。但是,如果它们不断调用malloc()
并使free()
内存总线饱和,它们就会相互影响。
我该如何限制这个?我没有两个不同的内存节点,也没有 NUMA。
c++ - Cgroup 使用限制资源
我的目标:为用户提供一种方法来限制给定进程 (C++) 的 CPU、内存等资源。
所以有人建议我使用看起来像一个理想实用程序的 Cgroups。
在做了一些研究后,我有一个担忧:
当我们利用 memory.limit_in_bytes 来限制给定进程的内存使用时,有没有办法处理进程中的内存不足异常?我看到控制组提供了一个名为“memory.oom_control”的参数,当启用该参数时,它会杀死请求比允许更多内存的进程。禁用时,它只会暂停该过程。
我想要一种方法让进程知道它请求的内存比预期的多,并且应该抛出内存异常。这是为了让进程优雅地退出。
cgroups 是否提供这种行为?
cgroup 也适用于所有版本的 linux 吗?我主要对 RHEL 5+、CENTOS 6+ 和 ubuntu 12+ 机器感兴趣。
任何帮助表示赞赏。
谢谢
linux - “mount -t cgroup -o cpuset none /cpuset”中的“无”是什么意思
在练习 cgroup 时,我们需要 mount likemount -t cgroup -o cpuset none /cpuset
你能解释一下这里的意义none
吗?
似乎它只是一个名称,我可以将其设置为任何字符串,对吧?
是否有任何基于它的文件、文件夹或文件内容?
centos - Centos 7 和 systemd:CPU 配额?
操作系统版本信息:
test.slice 的配置如下:
我像这样创建了另一个文件(称为 testhigh.slice)并给它 CPU 份额 = 128。当我在任一切片中启动 CPU 饥饿进程时,我看到 CPU 按比例分配,正如预期的那样。
但是,似乎没有办法实际将一个切片的 CPU 限制为一个常数,例如 10%。systemd无法识别 CPUQuota 选项:
原则上,能够精确地分配资源会很棒,但现在我无法让它发挥作用。请帮忙; 如果可能的话,我想要一个来自 systemd 框架内部的解决方案。