CPU 亲和性--sched_setaffinity()函数

sched_setaffinity – 将线程&进程运行在期望的CPU核心上

CPU亲和性

是指进程或线程在运行时倾向于在某个或某些CPU核心上执行,而不是随机或频繁地在不同的核心之间切换。
CPU亲和性利用CPU缓存的局部性,减少缓存失效和进程或线程迁移的开销,避免频繁地在不同的核心之间切换,提高性能

CPU亲和性分为软亲和性硬亲和性
软亲和性是Linux内核进程调度器的默认特性,它会尽量让进程在上次运行的CPU核心上继续运行,但不保证一定如此,因为还要考虑各个核心的负载均衡。
硬亲和性是Linux内核提供给用户的API,它可以让用户显式地指定进程或线程可以运行在哪些CPU核心上,或者绑定到某个特定的核心上。

使用方式

man sched_setaffinity #查找man手册

/*
    sched_setaffinity():设置进程或线程的CPU亲和性掩码,表示它可以运行在哪些核心上。
    sched_getaffinity():获取进程或线程的CPU亲和性掩码,表示它当前可以运行在哪些核心上。
    CPU_ZERO():操作CPU亲和性掩码的宏,用于清空某个核心是否在掩码中。
    CPU_SET():操作CPU亲和性掩码的宏,用于设置某个核心是否在掩码中。
    CPU_CLR():操作CPU亲和性掩码的宏,用于清除某个核心是否在掩码中。
    CPU_ISSET():操作CPU亲和性掩码的宏,用于检查某个核心是否在掩码中。
*/ 
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值