文档首页/ 弹性云服务器 ECS/ 故障排除/ 操作系统类(Linux)/ 使用taskset命令让进程运行在指定CPU上
更新时间:2024-08-15 GMT+08:00

使用taskset命令让进程运行在指定CPU上

操作场景

taskset命令,可用于进程的CPU调优,可以把云服务器上运行的某个进程,指定在某个CPU上工作。

本节操作指导用户使用taskset命令让进程运行在指定CPU上。

适用场景

CentOS、EulerOS系列操作系统。

操作步骤

  1. 执行如下命令,查看云服务器CPU核数。

    cat /proc/cpuinfo

    关于CPU的核心参数说明:

    • processor:指明第几个CPU处理器
    • cpu cores:指明每个处理器的核心数
  1. 执行以下命令,获取进程状态(以下操作以进程test.sh为例,对应的pid为23989)

    ps aux | grep test.sh

  1. 执行以下命令,查看进程当前运行在哪个CPU上。

    taskset -p 进程号

    例如:taskset -p 23989

    显示的是十六进制数字1,转换为二进制为0001。每个1对应一个CPU,所以进程运行在第0个CPU上。

  1. 执行以下命令,指定进程运行在第二个CPU(CPU1)上。

    taskset -pc 1 进程号

    例如:taskset -pc 1 23989

    CPU的标号是从0开始的,所以CPU1表示第二个CPU(第一个CPU的标号是0),这样就把应用程序test.sh绑定到了CPU1上运行。

    也可以使用如下命令在启动程序时绑定CPU(启动时绑定到第二个CPU)上。

    taskset -c 1 ./test.sh&