我在 AWS/GCP 上有两个 32 vCPU 实例。我正在尝试设置 cpu 屏蔽,以便系统使用 CPU 0、1,而 cpus 2-31 被屏蔽并且仅由用户空间线程显式使用。
系统信息:
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
$ cat /proc/filesystems | grep cpuset
nodev cpuset
但是,当我尝试运行时cset shield
,出现与安装有关的错误:
mount: /cpusets: none already mounted on /run/credentials/systemd-sysusers.service.
cset: **> mount of cpuset filesystem failed, do you have permission?
我深入研究了 cset 代码,失败的调用似乎是一个
$ sudo mount -t cpuset cpuset /cpusets
mount: /cpusets: cpuset already mounted or mount point busy.
/cpusets
是一个新创建的文件夹,并且$ cat /proc/mounts | grep cpuset
是空的——所以 cpuset 似乎没有安装在其他地方。
也许相关:
$ cat /proc/mounts | grep cgroup
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot 0 0
我的猜测是 AWS/GCP 将 cpuset 用于管理程序或类似的东西。是否可以在 AWS/GCP 上隔离 cpus?我该怎么办?