让进程独占CPU,提升性能。

摘要

Linux平台,让进程绑定到指定CPU上,实现负载均衡。用taskset命令或编码调用系统接口函数,都可指定自己和其他进程。查看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、本网站名称:宇凡盒子
2、本站文章未经许可,禁止转载!
3、如果文章内容介绍中无特别注明,本网站压缩包解压需要密码统一是:yufanbox.com
4、本站仅供资源信息交流学习,不保证资源的可用及完整性,不提供安装使用及技术服务。点此了解
5、如果您发现本站分享的资源侵犯了您的权益,请及时通知我们,我们会在接到通知后及时处理!提交入口
0

评论0

请先

站点公告

🚀 【宇凡盒子】全网资源库转储中心

👉 注册即送VIP权限👈

👻 全站资源免费下载✅,欢迎注册!

记得 【收藏】+【关注】 谢谢!~~~

立即注册
没有账号?注册  忘记密码?

社交账号快速登录