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

最佳答案

 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将运行的进程及其参数视为对其自身的单个参数。值得尝试一下,看看会发生什么。

关于python - 带有numactl的pysys startProcess,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42645793/

10-12 18:23