问题标签 [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 投票
0 回答
179 浏览

c - 如何在不使用 libcgroup 功能的情况下在 RHEL/SUSE 上获取 cgroups(控制组)的挂载点?

我正在尝试在我的 RHEL 和 SUSE 系统上获取 cgroups 的挂载点。

从这里我可以得到它,但它是使用 libcgroup 的系统调用。我必须在不使用任何 libcgroup 库函数的情况下执行此操作,因为 libcgroup 可能会或可能不会安装在客户的服务器上。

有人可以帮忙吗?

0 投票
1 回答
2903 浏览

linux - 当 Docker 容器的 PID1 退出时,其他进程会发生什么?

考虑以下,它sleep 60在后台运行然后退出:

这将启动一个带有bashPID1 的 Docker 容器。然后它 fork/execs 一个sleep进程,然后bash退出。当 Docker 容器死亡时,sleep进程也会以某种方式死亡。

我的问题是:sleep进程被杀死的机制是什么?我尝试SIGTERM在子进程中进行捕获,但这似乎没有被绊倒。SIGKILL我的假设是,在关闭容器正在使用的 cgroup 时,某些东西(Docker 或 Linux 内核)正在发送,但我在任何地方都找不到任何文档来澄清这一点。

编辑我最接近的解释是来自baseimage-docker的以下引用:

如果您的 init 进程是您的应用程序,那么它可能只会关闭自己,而不是容器中的所有其他进程。然后内核将强行杀死那些其他进程,而不给它们正常关闭的机会,这可能会导致文件损坏、过时的临时文件等。你真的想优雅地关闭所有进程。

所以至少按照这个,意思是当容器退出时,内核会向所有剩余的进程发送一个SIGKILL。但是我仍然希望清楚它是如何决定这样做的(即,它是 cgroups 的一个特性吗?),理想情况下,一个更权威的来源会很好。

0 投票
2 回答
3728 浏览

docker - google/cadvisor:latest image monitor container run error

我在 bugzilla.redhat.com 的上述“devicemapper”上发现了以下错误。它让我安装了“device-mapper-persistent-data”包。但是,当我安装它时,我收到以下错误。

我试图使用这个链接来解决这个错误,但是我仍然没有设法解决它。

这是我尝试过的:

这是错误:

0 投票
0 回答
278 浏览

resources - C++ 中的资源管理器类

我目前正在实现一个服务器程序,它分叉一个进程来处理客户端的请求。分叉的进程必须在 cpu、内存、磁盘和其他系统属性方面得到很好的控制。我注意到实现资源管理器类的最简单方法是环绕 C rlimit。但是,rlimit似乎太基础了。我被告知现代软件技术例如cgroups并且LXC也可以做好工作。在我的应用程序中,分叉的进程必须通过本地共享内存或远程网络套接字(应用程序在机器集群上运行)相互通信。在这种情况下,是cgroups还是LXC负担得起?我注意到一个容器是完全隔离的,不能相互通信。任何意见将不胜感激!

0 投票
0 回答
499 浏览

linux - cgroup cpuacct.stat 不匹配 /proc/pid/stat

最近对在 docker 容器中运行的进程进行了一些性能测试。CPU 使用率是通过 /sys/fs 容器目录中的 cpuacct.stat 文件收集的。当使用 top 等工具手动监控进程时,我注意到 cgroup CPU 使用率总是低于 top 显示的值,有时是四倍。

我编写了一个快速脚本来跟踪 cpuacct.stat 和 /proc//stat 报告的容器中进程使用的刻度。他们甚至都不近。proc 统计数据要大得多,这没有任何意义;这就像说容器比里面的小。

我能找到的唯一引用是内核注释说 cpuacct.stat 有时可能有点不准确。这不仅仅是一个舍入误差。

有人对此有任何经验或知识吗?这让我所有的 CPU 使用率指标都受到质疑。

Linux 3.10.0-327.18.2.el7.x86_64 Centos 在 8 cpu 机器上。

0 投票
1 回答
128 浏览

systemd - Linux Systemd Cgroup 字符含义 '`'

谁能解释以下输出的最后一行“`-813”的含义是什么,为什么它以“`-”开头,而大多数 systemctl 输出是“|-”。

这是相同的命令,但输出不同,否则它会以“└─”结尾。

非常感谢

0 投票
1 回答
179 浏览

cgroups - 如何检查 cgroups 选项 memory.use_hierarchy 的设置?

我试图弄清楚 cgroups 选项 memory.use_hierarchy 是否设置为 true 或 false(1 或 0)。是否列出了一些标准文件或我可以用来解决这个问题的命令?如果没有在任何地方设置,是否有默认设置?

0 投票
1 回答
918 浏览

shell - 在linux中,文件不为空,但大小为0

我在 Shell 中测试文件是否为空。 test -s /sys/fs/cgroup/systemd/docker/d4e311735706485e748513bad611070e223cba76fdf4c72a1102d14b653da750/tasks 它返回false,我在使用时发现它的大小为0 ls -lh,但是当我使用时cat,我可以在这个文件中得到4071,这意味着文件不是空的。我想也许这个文件太小了,我在我的主目录中创建了一个文件,然后向它回显 4071,我发现它的大小不是 0。 /sys/fs/cgroup 中的文件是特殊的吗?

0 投票
1 回答
3372 浏览

linux - 节点状态=在工作站上使用 TORQUE v6.1.0 关闭

我在 Ubuntu 16.04 工作站上安装 Torque 6.1.0,但安装似乎无法识别机器有多少内核和线程。我设置的唯一节点显示状态为“state=down”,任何作业都会触发错误提示“没有足够的正确类型的节点”。实际上,工作站在 2 个处理器上有 56 个线程或 28 个物理内核,而我只想使用 54 个线程或 27 个物理内核来进行共享计算作业。我意识到这可能与从 Torque V6.0 开始的 cgroup 或 NUMA 的配置有关,如果我在安装时做正确的事情,我不是。我确实cgroup启用了,但不确定是否还需要配置 NUMA 感知功能以启用。以下是当前配置的一些输出。我应该怎么办?谢谢。

还有一个可疑的部分,似乎服务器无法看到我已经在服务器的配置文件中定义的节点。这可以在/var/spool/torque/server_logs日志文件中看到:

在我的/etc/hosts,我有

PS:我已经尝试将cpu和其他模块挂载到/var/spool/torque/cgroup目录,但lssubsys -am仍然显示与上面相同的信息。我想他们应该已经安装了?

0 投票
1 回答
97 浏览

docker - 如何使用 YARN 在 Hadoop 集群中安装应用程序?

我正在努力学习 YARN。但我遇到了障碍。我有一些问题。

  1. 对于每个应用程序,每个数据节点都必须有一个容器。但是,这些容器是在运行应用程序时自行创建的,还是我们需要创建它们?

  2. 在 dockers 中,您可以访问容器,这些容器本身就是独立的机器。我们可以以类似的方式访问容器吗?

  3. 在 dockers 中,容器无法看到容器外部,并且表现为自己的系统,因此它具有容器进程 ID,并且从主机上它也具有进程 ID。换句话说,容器与其他进程是隔离的。YARN 中是否也有类似的概念?

提前致谢!!!:)