修改
启动参数 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核 上