//用于绑定线程或者进程在某个CPU上运行
sched_set_affinity()
// 查看线程或者进程在哪一个CPU运行
sched_get_affinity()
//线程绑定到某个CPU Core
int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize,
const cpu_set_t *cpuset);
//查看绑定的情况
int pthread_getaffinity_np(pthread_t thread, size_t cpusetsize,
cpu_set_t *cpuset);
进程或者线程绑定到某个CPU Core,仍然可能会有线程或者进程切换的发生,如果想到达到进一步减少其他进程对于该进程或者线程影响,可以采取把CPU Core从Linux内核调度中剥离出来。Linux内核提供isolcpus,对于有4个CPU core的系统,在启动时候加入isolcpus=2,3,那么系统启动后将不会使用CPU3,CPU4.这里的不适用不是绝对的,但是可以通过taskset命令来设置
// 1.在Linux内核启动参数添加isolcpus参数
vi /boot/grub2.cfg中添加isolcpus=2,3
// 2.查看设置的情况
cat /proc/cmdline