Linux如何将进程绑定运行在指定CPU上

Linux平台可将进程绑定到指定CPU上,实现负载均衡。
可通过系统命令taskset实现,也可通过编码调用系统接口函数实现(都可指定自己和其他进程)。

1. 系统命令实现(taskset)

1) 查看cpu核数
cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l

2) 查看进程绑定在哪个cpu
taskset -cp 进程PID

3) 绑定进程到cpu
taskset -cp cpu核序号 进程PID

4) 再次查看,进程已经绑定到2上:

2. C++代码实现

1) 获得CPU核数

#include
//获得cpu总核数,索引从0开始
int getCpuCoreCount()
{
return sysconf(_SC_NPROCESSORS_CONF);
}

2) 进程绑定到CPU

#include
//把进程分配到某个cpu上(从0开始,小于cpu核数-1)
//大于等于0成功
int cpuSetByPID(int pid, unsigned int cpu)
{
cpu_set_t mask;
CPU_ZERO(&mask); //清空集合(掩码)
CPU_SET(cpu, &mask); //把cpu序号加入到集合
//把pid运行在mask所设定的CPU上
int ret = sched_setaffinity(pid, sizeof(mask), &mask);
printf(“sched_setaffinity(%d,%d)ret = %d\n”,pid<=0?getpid():pid, cpu, ret);
//成功返回值是0
return ret;
}

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

【投资技巧】定投十年赚十倍

2021-5-13 0:00:00

未整理

易优cms蓝色平面设计广告印刷网站模板源码 带手机版

2021-5-15 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索