linux线程绑定cpu内核

linux线程绑定cpu内核

通过taskset配置绑定线程内核

一、获取[pthread_name]的pid

代码如下(示例):ps -ef|grep [pthread_name] | grep catalina | awk ‘{print $2}’ //通过服务名查看pid

root@ft2000-FT2004:/# ps -ef|grep tomcat | grep catalina | awk '{print $2}'    
8969
root@ft2000-FT2004:/#

二、查看设备上的内核数

代码如下(示例):cat /proc/cpuinfo | grep process

root@ft2000-FT2004:/# cat /proc/cpuinfo | grep process
processor       : 0
processor       : 1
processor       : 2
processor       : 3
root@ft2000-FT2004:/#

三、查看[pthread_name]服务器的内核数

代码如下(示例):taskset -pc [pid]

root@ft2000-FT2004:/# taskset -pc 8969
pid 8969's current affinity list: 0-3
root@ft2000-FT2004:/# 

四、绑定cpu内核

代码如下(示例:三种绑定cpu方式):taskset -pc [cpu_set] [pid]

root@ft2000-FT2004:/# taskset -pc 0 8969    
pid 8969's current affinity list: 0-3
pid 8969's new affinity list: 0
root@ft2000-FT2004:/# taskset -pc 0-1 8969
pid 8969's current affinity list: 0
pid 8969's new affinity list: 0,1
root@ft2000-FT2004:/# taskset -pc 0,1,3 8969
pid 8969's current affinity list: 0,1
pid 8969's new affinity list: 0,1,3
root@ft2000-FT2004:/# 

五、整合成shell文件一键执行

代码如下(示例):bindingTheKernel.sh [pthread_name] [cpu_set]

#!/bin/bash

pthreadName=$1
cpuSet=$2

pid=$(ps -ef|grep $pthreadName | grep catalina | awk '{print $2}')

taskset -pc ${cpuSet} ${pid}

echo ${pid}

提示:上传到linux上,执行 sudo chmod 777 ./bindingTheKernel.sh 赋权限

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值