Linux 如何找到固定到同一核心的多个进程?
我使用Linux 如何找到固定到同一核心的多个进程?,linux,shell,Linux,Shell,我使用lsisolcpus查找不同进程使用的内核 问题>是否有一种方法可以自动检测多个进程何时固定到同一cpu内核?在上面的示例中,我希望看到脚本抱怨存在冲突,因为Test1和Test2都固定在核心30上。如何: $ lsisolcpus core pid foreign comm cmdline 30 27213 2147 Test1 ./Test1 30 27214 2157 Test2 ./Test2 获取lsisolcpus命令的输出并将其馈送到awk。我们忽
lsisolcpus
查找不同进程使用的内核
问题>是否有一种方法可以自动检测多个进程何时固定到同一cpu内核?在上面的示例中,我希望看到脚本抱怨存在冲突,因为Test1
和Test2
都固定在核心30上。如何:
$ lsisolcpus
core pid foreign comm cmdline
30 27213 2147 Test1 ./Test1
30 27214 2157 Test2 ./Test2
获取lsisolcpus命令的输出并将其馈送到awk。我们忽略输出的第一行(NR==1),然后构建一个由核心和命令索引的输出(CPU)的二维数组。然后,我们在数组中循环,如果每个核心有多个条目(cnt>1),我们将打印一条错误消息以及与该核心相关的命令。可能与
lsisolcpus | awk'{print$1}'| sort | uniq-d
类似?
lsisolcpus | awk 'NR==1 {next} { cpus[$1][$4]="" } END { for ( i in cpus) { cnt=0;for (n in cpus[i]) {cnt++} if (cnt>1) { print "WARNING - conflict on core - "i;for (o in cpus[i]) { print o } } } }'