在 Linux 上,如何检查进程及其线程的 CPU 关联性?

Jam*_*oon 9 linux

在 Linux 上,如何检查进程及其线程的 CPU 关联性?

Jam*_*oon 11

这很简单。 收集所有进程 ID 和线程 ID,然后调用 program taskset 喜欢,

taskset -cp 2
taskset -cp 4
…
Run Code Online (Sandbox Code Playgroud)


按进程名称打印全部

taskset--all-tasks可选参数

taskset --all-tasks -p $(pgrep java)
Run Code Online (Sandbox Code Playgroud)

对于某些进程,--all-tasks似乎没有打印所有子进程(在我的测试中,它没有打印 的子进程kthreadd,我不确定为什么会这样)。

按进程名称打印所有帮助程序脚本

这是一个简短的 Linux shell 脚本,用于按名称及其所有子线程打印进程的 CPU 亲和性。

taskset -cp 2
taskset -cp 4
…
Run Code Online (Sandbox Code Playgroud)

输出

taskset --all-tasks -p $(pgrep java)
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 12、bash 4 上测试。