首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有sudo的情况下隔离代码中的cpu?

在没有sudo的情况下隔离代码中的cpu?
EN

Stack Overflow用户
提问于 2012-02-29 20:06:52
回答 1查看 1.4K关注 0票数 1

有没有可能在代码中将cpu与linux调度器隔离,并授予用户执行此操作的权限,这样他就不必是root用户?

我可以很容易地设置进程/线程的cpu亲和性:

代码语言:javascript
复制
// set thread affinity to core 1
cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
CPU_SET(1, &cpu_set);
sched_setaffinity(tid, sizeof(cpu_set_t), &cpu_set);

现在,我想将此cpu与系统中的所有其他进程隔离开来。

我知道我可以用金枪鱼在Redhat上做到这一点:

代码语言:javascript
复制
sudo tuna --cpus 1 --isolate
sudo tuna --cpus 3 --isolate

我在某处读到,可以按如下方式隔离:

代码语言:javascript
复制
sudo echo 0 > /sys/devices/system/cpu/cpu1/online 
sudo echo 1 > /sys/devices/system/cpu/cpu1/isolated
sudo echo 1 > /sys/devices/system/cpu/cpu1/online 

但是,创建isolated文件的尝试将失败,并显示Permission denied

最后,有没有办法授予特定用户隔离cpu的权限(就像增加/etc/security/limits.conf中的某些限制一样)?

代码语言:javascript
复制
username              hard       memlock         unlimited
username              soft       memlock         unlimited
username              -          rtprio          99
EN

回答 1

Stack Overflow用户

发布于 2012-03-01 03:05:31

您提到的/sys中的文件是由操作系统自动创建和维护的-它是一个虚拟文件系统,而不是硬盘上的常规文件,所以您不能自己创建它们。

负责您提到的特定文件的子系统称为"CPU hotplug“,描述为here。显然,您需要一个支持此功能的内核,因此要么查看您的发行版可用的内核(此选项可能只在为高级服务器使用而设置的内核中),要么编译您自己的内核并确保启用了"CPU hotplug“(CONFIG_HOTPLUG_CPU=y)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9498878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档