将进程的内核线程绑定至处理器或取消绑定至处理器。
bindprocessor Process [ ProcessorNum ] | -q | -u Process
bindprocessor 命令绑定或取消绑定进程的内核线程,或列出可用的处理器。Process 参数是将要绑定或取消绑定线程的进程的进程标识,ProcessorNum 参数是要使用的处理器的绑定 CPU 标识。如果 ProcessorNum 参数被省略,则进程被绑定至随意选择的处理器。
如果目标进程具有资源附件,则 bindprocessor 命令失败。
使用处理器绑定的程序应该变为意识到动态逻辑分区(DLPAR)。请参考AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs中的『动态逻辑分区』以获取更多信息。
重要的是要理解进程本身不能被绑定,而是它的内核线程可被绑定。一旦内核线程被绑定,它们总是被调度为在所选的处理器上运行,直到它们之后被取消绑定。创建了新的线程后,它与创建程序具有相同的绑定属性。此应用于由 fork 子例程创建的新进程中的初始线程:新的线程继承了被称为 fork 的线程的绑定属性。当调用 exec 子例程,线程属性会保留为未更改。
bindprocessor 命令的 -q 标志列出可用的绑定 CPU 标识:可以将给定的逻辑号用作 ProcessorNum 参数的值。-u 标志取消绑定进程的线程,允许它们在任何处理器上运行。
注:
-q | 显示可用的处理器。 |
-u | 取消绑定指定进程的线程。 |
bindprocessor -q
对于具有四个处理器的系统,输出与以下内容相似:
可用的处理器是:0 1 2 3
bindprocessor 19254 1
/usr/sbin/bindprocessor | 包含 bindprocessor 命令。 |
bindprocessor 子例程。exec 子例程、fork 子例程。
AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs中的『控制处理器使用』和『动态逻辑分区』。