1

numactl 是一个可以设置处理器亲和性的进程。它将固定到 cpu 的过程作为参数:

numactl -physcpubind 0 <process> <args>

我可以使用 pysys startProcess 命令成功运行我的进程:

BaseTest.startProcess('processA argsA') 

但是,根据 ps -ef [PID],以下内容会导致 Python 进程失效。

BaseTest.startProcess('numactl -physcpubind 0 processA argsA') 

关于如何使用 startProcess() 调用进程 (numactl) 的任何想法:

  • 本身有参数(-physcpubind 0)
  • 所述参数之一是另一个进程(processA),它本身具有参数(argsA)

TIA

4

1 回答 1

0
 def startProcess(self, command, arguments, environs=None, workingDir=None, state=FOREGROUND,
                    timeout=TIMEOUTS['WaitForProcess'], stdout=None, stderr=None, displayName=None,
                    abortOnError=None, ignoreExitStatus=True):

startProcess 的命令参数是您要启动的实际可执行文件,在本例中为 numactl。因此,任何对 startProcess 的调用至少应采用以下形式;

startProcess(command='numactl', arguments=...)

所以问题真的是你传递的论点是什么。我没有方便确认的 linux 环境,但我希望以下之一

arguments=['-physcpubind', '0', 'processA', 'argsA']
arguments=['-physcpubind', '0', 'processA argsA']

第一种意味着通常 numactl 将要运行的进程及其命令行参数视为自身的单独参数,或者后者意味着 numactl 将要运行的进程及其参数视为自身的单个参数。两者都值得尝试,看看会发生什么。

于 2017-03-07T19:31:02.367 回答