我正在尝试编写一个脚本,可以输出执行脚本的核心ID。
我已经找到了一个可以实现我的目标的系统调用getCPU。 但是,我不知道如何调用此系统调用并使其在bash脚本中运行。
任何帮助都会感激不尽!
丹尼斯
答案 0 :(得分:1)
除非您已采取措施将流程固定到特定核心,否则调度程序会在其认为合适时移动它。因此,每次安排流程时,都可能会发生变化。
在Linux上使用内核&gt; = 2.2.8,您可以通过查看/proc/<PID>/stat
文件找到该进程上次运行的核心。有关更多信息,请访问PROC(5)手册页。可以使用简单的awk脚本来获取相关信息,例如如果你的shell是PID 2338那么
awk '{print $39}' /proc/2338/stat
将打印shell上次运行的CPU编号。如果您在多核/ CPU系统上多次运行awk脚本,您应该会看到该进程从核心移动到核心。
如果要将进程的关联性设置为特定核心(或核心组),则可以使用taskset命令。
taskset -p 1 2338
将设置进程与核心0的亲和关系,-p 3 2338
将设置与核心0和1等的关联。
答案 1 :(得分:-1)
ps -eaf | grep $$
这将列出父级,然后使用awk
来获取它