首页 > 系统相关 >podman 无根用户分配系统CPU、内存等系统资源,提示cgroup相关权限不足

podman 无根用户分配系统CPU、内存等系统资源,提示cgroup相关权限不足

时间:2024-10-21 15:51:12浏览次数:18  
标签:podman sudo 用户 Podman v2 cgroup 权限 CPU

问题:在使用 Podman 以无根用户(rootless)模式创建容器时,如果遇到分配系统 CPU 等资源时提示 cgroup 权限不足,这是因为无根用户没有直接访问 cgroup 相关资源的权限。

以下是一些解决方法(目前采用的办法3临时解决,,主要是更改系统目录权限 sudo chown -R $USER:$USER /sys/fs/cgroup/user.slice,但重新开机后该目录的权限会重置为root,而且此方法修改了系统权限,并不安全,尚未找到最佳解决办法,道友们有好的方法,欢迎留言~):

1. 启用 cgroup v2

无根用户在使用 cgroup v2 时,Podman 可以较好地管理资源。首先你需要确保系统启用了 cgroup v2,可以通过以下命令检查:

cat /proc/cgroups

你应该看到 cgroup2 被启用。如果还没有启用,你需要配置 Grub 来启用 cgroup v2:

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"

然后重启系统:

sudo reboot

重启后再验证 cgroup v2 是否启用。

2. 更新 Podman 版本

确保你使用的是最新版本的 Podman,因为较新的版本对于无根用户支持 cgroup v2 的功能有所改善。

你可以通过以下命令更新 Podman:

sudo dnf update podman

或者其他包管理器,如 apt 或 yum,根据你的发行版。

3. 为无根用户配置正确的 cgroup 权限

在某些 Linux 发行版中,无根用户默认并没有访问 cgroup 的权限。你可以通过以下步骤手动授予这些权限:

(1) 检查当前用户的 cgroup 目录

找到无根用户对应的 cgroup 目录:

cat /proc/self/cgroup

(2) 确保目录权限正确

确保无根用户可以写入其 cgroup 目录。检查并更改权限:

sudo chown -R $USER:$USER /sys/fs/cgroup/user.slice/user-$(id -u).slice

这样应该可以解决大部分无根用户访问 cgroup 权限的问题。

4. 无法使用无根用户时考虑 root 模式

如果你仍然无法使用无根用户进行资源分配,可以考虑在 root 模式下运行 Podman。root 模式下具有完全的系统权限,可以避免无根用户权限问题,但要注意安全性问题:

sudo podman run --cpus 2 myimage

总结

Podman 无根用户模式的 cgroup 权限问题一般与 cgroup v2 相关,启用并正确配置 cgroup v2 是关键。如果仍然无法解决,可以考虑在 root 模式下运行 Podman 或者为无根用户正确配置 cgroup 权限。

标签:podman,sudo,用户,Podman,v2,cgroup,权限,CPU
From: https://blog.csdn.net/m0_59644956/article/details/143105807

相关文章

  • 看看硬件工程师是如何写代码的(二),榨干CPU的性能
     更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!目前本人已经不再写代码了,只是想把自己走过的弯路,踩过的坑分享出来,希望更多的小伙伴能看到,少走弯路,仅供参考哈!这章重点给新手们提供一个能最大利用CPU性能的程序架构思路,具体程序就不再展示了。前言......
  • Stanford CS149 -- Assignment 1: Performance Analysis on a Quad-Core CPU
    作业描述及代码参加:CS149-asst1程序1生成view1时加速比与线程数的关系如下:线程数加速比22.0431.6942.5452.5763.2673.5584.11生成view2时加速比与线程数的关系如下:线程数加速比21.7532.2542.6753.146......
  • AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率
    一:背景1.讲故事上篇聊到了如何对AOT程序进行轻量级的APM监控,有朋友问我如何获取AOT程序的CPU利用率,本来我觉得这是一个挺简单的问题,但一研究不是这么一回事,这篇我们简单的聊一聊。二:如何获取CPU利用率1.认识cpuUtilization字段熟悉.NET底层的朋友应该知道,.NET线程池中有一......
  • Win11系统CPU资源
    在Win11中结束进程,可以按照以下步骤进行操作:打开资源管理器。您可以通过按下Windows键并键入“资源管理器”来快速找到它。在资源管理器中,单击左侧导航栏的“此电脑”或“我的电脑”。在“此电脑”窗口中,单击左上角的“查看”选项卡。在“查看”选项卡中,单击右侧的“选......
  • Linux 中通过 cpulimit 限制服务的CPU占用率
    文章目录安装查找服务文件位置编辑服务文件重启服务通常做资源限制有多种方法,比如用CGroup方法、system-run等,cpulimit只是其中的一种方式。安装sudoaptupdatesudoaptupgradesudoaptinstallcpulimit查找服务文件位置systemctlstatusabc.service......