linux taskset命令

2023-05-16

一、简介

taskset命令用于设置进程(或线程)的处理器亲和性(Processor Affinity),可以将进程(或线程)绑定到特定的一个 或 多个CPU上去执行,而不允许将进程(或 线程)调度到其他的CPU上。

CPU亲和性使用位掩码来表示,最低的顺序位是第一个逻辑CPU,最高位对应为最后一个逻辑CPU。

查看cpu的信息可以用 “cat /proc/cpuinfo”命令。

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数


The masks may be specified in hexadecimal (with or without a leading "0x"), or as a CPU list with the --cpu-list option.   

位掩码可以十六进制或者 --cpu-list选项表示,使用十六进制表示的时候可以不带或者带0x前缀。

举例说明

       0x00000001
           is processor #0,

       0x00000003
           is processors #0 and #1,

       0xFFFFFFFF
           is processors #0 through #31,

       32
           is processors #1, #4, and #5,

       --cpu-list 0-2,6
           is processors #0, #1, #2, and #6.

       --cpu-list 0-10:2
           is processors #0, #2, #4, #6, #8 and #10. The suffix ":N"
           specifies stride in the range, for example 0-10:3 is
           interpreted as 0,3,6,9 list.

二、常用参数:

-a, --all-tasks设置或检索所有任务(线程)的CPU相关性对于给定的PID
-c, --cpu-list指定逻辑cpu的序号
-p, --pid在现有PID上操作,不要启动新任务
-V, --version显示版本信息

-h, --help
显示帮助信息

三、常用使用场景

1、查看某一个进程允许运行在那个Cpu上


taskset -p pid  
[root@localhost ~]# ps -eLf | grep qemu
root       1389   1339   1389  0    3 14:48 pts/0    00:00:10 /usr/libexec/qemu-kvm -cpu SandyBridge -vnc 0.0.0.0:1 centos1708.img
root       1389   1339   1393  2    3 14:48 pts/0    00:00:36 /usr/libexec/qemu-kvm -cpu SandyBridge -vnc 0.0.0.0:1 centos1708.img
root       1389   1339   1395  0    3 14:48 pts/0    00:00:00 /usr/libexec/qemu-kvm -cpu SandyBridge -vnc 0.0.0.0:1 centos1708.img
root       2638   1409   2638  0    1 15:10 pts/1    00:00:00 grep --color=auto qemu
[root@localhost ~]# taskset -p 1393
pid 1393's current affinity mask: ff
[root@localhost ~]# taskset -p 1389
pid 1389's current affinity mask: ff

输出结构处理器亲和性掩码是ff,表示进程(或 线程)可以在Host上让任何一个CPU运行。


taskset -cp pid  
[root@localhost ~]# taskset -cp 1393
pid 1393's current affinity list: 0-7
[root@localhost ~]# taskset -cp 1389
pid 1389's current affinity list: 0-7

查看进程(或 线程)允许允许CPU范围使用-c参数。由于我的Host CPU是4核2线程,因此有8颗逻辑CPU。

2、设置某一进程的cpu的亲和性,也就是设置在某些cpu上运行


taskset -p mask pid  
[root@localhost ~]# taskset -p 0x11  1393
pid 1393's current affinity mask: ff
pid 1393's new affinity mask: 11
[root@localhost ~]# taskset -p   1393
pid 1393's current affinity mask: 11
[root@localhost ~]# taskset -cp   1393
pid 1393's current affinity list: 0,4

设置掩码0x11(二进制0001 0001),表示可以在0和4号CPU上允许运行。


taskset -cp cpu_list pid  
[root@localhost ~]# taskset -cp 0,3  1393
pid 1393's current affinity list: 0,4
pid 1393's new affinity list: 0,3
[root@localhost ~]# taskset -cp   1393
pid 1393's current affinity list: 0,3

ref:

cat /proc/cpuinfo 查看cpu信息_城南旧梦的博客-CSDN博客_cat cpuinfo

使用taskset命令让进程运行在指定CPU上_弹性云服务器 ECS_故障排除_操作系统类(Linux)_华为云

taskset(1) - Linux manual page

https://www.jianshu.com/p/2627cd875715

Linux命令——taskset - 克拉默与矩阵 - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux taskset命令 的相关文章

  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • gethostbyname() 或 getnameinfo() 如何在后台工作?

    How gethostbyname or getnameinfo 在后台工作 include
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • gentoo crontab:为什么这个简单的 crontab 不起作用?

    我使用 GENTOO 发行版 crontab e 35 12 root php5 home www cron php 当我手动运行时 php5 php5 home www cron php 这有效 它向我发送了一封电子邮件 然后我检查日期
  • 停止服务时单元陷入故障状态(状态=143)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的问题 我有 CentOS 和 java 进程在上面运行 Java进程是通过启动 停止脚本来操作的 它也创建了 java 实例的 p
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library

随机推荐

  • 什么是弹性云服务器?

    ecs云服务器是由CPU 内存 镜像 云硬盘组成的一种可随时获取 弹性可扩展的计算服务器 xff0c 同时它结合虚拟私有云 虚拟防火墙 数据多副本保存等能力 xff0c 为您打造一个高效 可靠 安全的计算环境 xff0c 确保您的服务持久稳
  • linux下修改MAC地址的问题解决

    在linux中 xff0c 修改MAC地址 ifdown eth0 ifconfig eth0 hw ether 12 xff1a 34 xff1a 56 xff1a 78 xff1a 90 xff1a 12 xff08 修改的MAC地址跟
  • 51串口发送数据的格式

    串行口控制寄存器SCON SCON的字节地址是98H xff0c 其格式如下 xff1a SM0 SM1 xff1a 串行口工作方式控制位 xff1a SM0 SM1 工作方式 功能 波特率 00 方式0 同步移位寄存器 fosc 12 0
  • c51单片机学习笔记-矩阵按键实验

    目的 xff1a 通过数码管显示矩阵按键 S1 S16 按下后键值 0 F 编译软件 xff1a keil5 过程 xff1a xff08 1 xff09 定义各端口 include 34 reg52 h 34 typedef unsign
  • CMake 添加第三方库的几种依赖方式

    转载链接 xff1a C 43 43 工程 xff1a 总结 CMake 添加第三方库依赖方式git submodule find library FetchContent CPM等 github地址 cpp cmake example 第
  • vue.js中v-for的使用及索引获取

    vue js中v for的使用及索引获取 1 v for 直接上代码 示例一 xff1a lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt
  • (转贴)Windows CE 5.0下串口驱动硬件FIFO控制Bug分析及修正方法

    转贴自 xff1a 驱动开发网 原贴地址 xff1a http bbs driverdevelop com read php tid 61 109193 amp fpage 61 0 amp toread 61 amp page 61 1
  • 四剑客和正则表达式常见故障及困惑集合(待更新)

    一 find命令 warning警告 maxdepth 这个参数要放在其他参数之前 root 64 oldboyedu59 find type d maxdepth 1 find warning you have specified the
  • sed的使用

    一 xff0c 替换文本 s pattern replacement flags replacement会替换pattern 例如 xff1a root 64 node1 sed cat data2 txt This is a test o
  • KVM虚拟化-创建-桥接-硬盘-快照

    1 创建 使用virt manager进行创建 virt manager进入管理器 点击如图进行创建 将ISO下载到虚拟机里面 点击浏览 下面是虚拟机名字 选择本地浏览 选中CentOS的iso 选择后前进 选择内存和cpu xff0c 前
  • 串口专题(一)——基础知识

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 概念介绍 串行口是计算机一种常
  • STM32中晶振的原理与作用

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 转载地址 STM32中晶振的原理与
  • STM32学习笔记一一UCOSII(1)

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 简介 UCOSII 是一个可以
  • PADS 原理图库文件绘制

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 PADS Logic 参数设置
  • prometheus监管平台(一)(开源)

    prometheus监管平台 xff08 一 xff09 xff08 开源 xff09 一 登录二 首页三 General Management功能四 Host Management功能五 Job Management功能六 Alarm M
  • vncserver连接后窗口显示太小

    VNC server的默认的分辨率是1024x768 如果要改变VNC server的分辨率 1 可以用一下命令启动VNC server root 64 localhost vncserver geometry 1280x1024 这种修改
  • dfs (二进制枚举,暴力,马的管辖)

    在中国象棋中 xff0c 马是走日字的 一个马的管辖范围指的是当前位置以及一步之内能走到的位置 xff0c 下图的绿色旗子表示马能走到的位置 如果一匹马的某个方向被蹩马脚 xff0c 它就不能往这个方向跳了 xff0c 如下图所示 xff0
  • linux进程(四)——进程的几种状态

    usr src linux headers 4 15 0 45 include linux Used in tsk gt state define TASK RUNNING 0x0000 define TASK INTERRUPTIBLE
  • linux网络设备驱动(一)

    一 框架 1 xff09 网络协议接口层 向网络层协议提供统一的数据包收发接口 xff0c 不论上层协议是ARP xff0c 还是IP xff0c 都通过dev queue xmit 函数发送数据 xff0c 并通过netif rx 函数接
  • linux taskset命令

    一 简介 taskset命令用于设置进程 xff08 或线程 xff09 的处理器亲和性 xff08 Processor Affinity xff09 xff0c 可以将进程 xff08 或线程 xff09 绑定到特定的一个 或 多个CPU