linux 分离某几个核给单独的应用进程使用 isolcpus
linuxisolcpus
·
修改
启动参数 cmdline 需要添加 isolcpus=3 (3代表分离cpu3)
内核文档
应用程序
#define _GNU_SOURCE
#include <sched.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main(int argc, char **argv)
{
int cpus = 0;
int i = 0;
cpu_set_t mask;
cpu_set_t get;
cpus = sysconf(_SC_NPROCESSORS_ONLN);
printf("cpus: %d\n", cpus);
CPU_ZERO(&mask); /* 初始化set集,将set置为空*/
/*将本进程绑定到CPU3上*/
CPU_SET(3, &mask);
if (sched_setaffinity(0, sizeof(mask), &mask) == -1) {
printf("Set CPU affinity failue, ERROR:%s\n", strerror(errno));
return -1;
}
while(1)
{
sleep(1);
}
return 0;
}
验证
运行应用程序 执行 top 就会发现 应用进程绑定到了指定的 cpu核 上
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)