Gil*_*il' 89
在 Linux 下,执行sched_setaffinity系统调用。进程的亲和性是它可以运行的处理器集。有一个标准的外壳包装器:taskset. 例如,要将进程固定到 CPU #0(您需要选择特定的 CPU):
taskset -c 0 mycommand --option # start a command with the given affinity
taskset -c -pa 0 1234 # set the affinity of a running process
Run Code Online (Sandbox Code Playgroud)
Perl ( Sys::CpuAffinity) 和 Python ( affinity)都有第三方模块来设置进程的亲和性。这些都适用于 Linux 和 Windows(Windows 可能需要其他带有 的第三方模块Sys::CpuAffinity);Sys::CpuAffinity也适用于其他几个 unix 变体。
如果要设置进程从出生时开始的亲缘关系,请在调用execve. 这是一个简单的包装器,它强制一个进程在 CPU 0 上执行。
#!/usr/bin/env perl
use POSIX;
use Sys::CPUAffinity;
Sys::CpuAffinity::setAffinity(getpid(), [0]);
exec $ARGV[0] @ARGV
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100333 次 |
| 最近记录: |