功能描述:查看和设置程序运行在哪些core上
查看:taskset -p PID
设置:taskset -c xxx(core) command(执行的命令)
1,查看机器可以使用的核有哪些
[root@template ~]# lscpu
NUMA node0 CPU(s): 0-3
2,设置程序运行在哪些核上
[root@template ~]# taskset -c 2,3 screen -dmS vmstat vmstat 1
3,使用ps查看程序的PID号,然后通过tastset -p PID查看运行在那个核上
[root@template ~]# taskset -c 2,3 screen -dmS vmstat vmstat 1
[root@template ~]# ps -ef |grep vmstat
root 1593 1 0 21:21 ? 00:00:00 SCREEN -dmS vmstat vmstat 1
root 1594 1593 0 21:21 pts/1 00:00:00 vmstat 1
root 1599 1569 0 21:21 pts/2 00:00:00 grep --color=auto vmstat
[root@template ~]# taskset -p 1594
pid 1594’s current affinity mask: c #1100 (3210)表示位置参数,一个核代表一个位置,一个数代表8个位置,使用的位置放1 ,然后计算值,比如上面1100则为8+4+0+0=12 =c
[root@template ~]# screen -X -s vmstat quit
[root@template ~]# taskset -c 0 screen -dmS vmstat vmstat 1
[root@template ~]# ps -ef |grep vmstat
root 1606 1 0 21:25 ? 00:00:00 SCREEN -dmS vmstat vmstat 1
root 1607 1606 0 21:25 pts/1 00:00:00 vmstat 1
root 1609 1569 0 21:25 pts/2 00:00:00 grep --color=auto vmstat
[root@template ~]# taskset -p 1607
pid 1607’s current affinity mask: 1 #在第一个位置 0001=1
[root@template ~]# screen -X -s vmstat quit
[root@template ~]# taskset -c 1 screen -dmS vmstat vmstat 1
[root@template ~]# ps -ef |grep vmstat
root 1613 1 0 21:26 ? 00:00:00 SCREEN -dmS vmstat vmstat 1
root 1614 1613 0 21:26 pts/1 00:00:00 vmstat 1
root 1616 1569 0 21:26 pts/2 00:00:00 grep --color=auto vmstat
[root@template ~]# taskset -p 1614
pid 1614’s current affinity mask: 2 #在第2个位置 0010=2
[root@template ~]# taskset -h
Usage: taskset [options] [mask | cpu-list] [pid|cmd [args…]]
Options:
-a, --all-tasks operate on all the tasks (threads) for a given pid
-p, --pid operate on existing given pid
-c, --cpu-list display and specify cpus in list format
-h, --help display this help
-V, --version output version information
The default behavior is to run a new command:
taskset 03 sshd -b 1024
You can retrieve the mask of an existing task:
taskset -p 700
Or set it:
taskset -p 03 700
List format uses a comma-separated list instead of a mask:
taskset -pc 0,3,7-11 700
Ranges in list format can take a stride argument:
e.g. 0-31:2 is equivalent to mask 0x55555555