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

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

时间:2024-10-21 15:51:12浏览次数:14  
标签: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性能的程序架构思路,具体程序就不再展示了。前言......
  • CPU与储存器连接(例题讲解)
    (1)地址线的连接         CPU的地址线数量往往比存储芯片的地址线数量要多。通常将CPU地址线的低位与存储芯片的地址线相连接,CPU地址线的高位用作对芯片的控制或其他用途。(2)数据线的连接        CPU的数据线数量也比存储芯片的数据线的数量要多。此时,必须对......
  • 简易CPU设计入门:验证取指令模块
    项目代码下载还是请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。下载本项目代码准备好了项目源代码以后,我们接着去讲解。本节前言想要学习本节,前提是,你得是学习过我讲......
  • 性能提升:线程池大小与CPU的关系
    前言:线程池可以包含几个线程才能最大化提升整体系统性能,这个与CPU的处理能力有直接关系,线程池的线程数过多则在大多数线程处于等待状态,线程之间的切换反而性能开销变大,拖累整体效率,如果线程池里的线程过小,则没有充分利用CPU的处理能力。一、查看CPU并发处理的线程数 在Linu......
  • 计算机基础(cpu,内存,硬盘)
    计算机基础(cpu,内存,硬盘)内存:负责硬盘等硬件上的数据与CPU之间数据交换处理;缓存系统中的临时数据。断电后数据丢失。硬盘:​ 存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。流程​ 简单来说,硬盘用来存储程序和数据,当运行程序时,CPU首先接受到命令,之后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......
  • 使用C#获取系统关键信息:CPU、内存、硬盘、用户与网络状态
    在C#中,获取系统信息如CPU、内存、硬盘、用户以及网络状态等,可以通过多种方式实现,包括使用System.Management命名空间中的类来查询WMI(WindowsManagementInstrumentation)信息,或者使用.NETFramework自带的类库。以下是一些基本示例来展示如何获取这些信息。1.引入必要的命......