在Jenkins下Matlab表现糟糕

时间:2014-11-18 08:50:13

标签: windows bash matlab jenkins

我有一个Jenkins脚本执行步骤,它使用Matlab处理输出数据,以执行测试结果的评估。

当从命令提示符运行脚本时,它启动并退出非常快,但是当使用来自Jenkins的相同参数执行相同的脚本时,它执行极端的por。我只在"提示符中获得了Matlab欢迎消息"在我为工作设置的2小时超时内没有出现的窗口。

已在节点上禁用了Jenkins Windows服务,并且正在从桌面运行节点进程,但没有区别:

C:\Windows\System32\java.exe -jar c:\j-mpc\slave.jar -jnlpUrl http://<server>/slave-agent.jnlp -secret <xxxxx>

还尝试增加节点进程的内存但没有改变:

C:\Windows\System32\java.exe -Xmx2048m

以bash开头杀死进程树时,它表示它是从java.exe-sh.exe树(Pocess Explorer窗口)继承的,但是它们之间缺少一个PID:

java.exe (<0.01%, 1 420 000K) 
  sh.exe (<0.01%, 2 140K)
bash.exe (<0.01%, 2 580K)
  bash.exe (     , 2 580K)
    python.exe (     , 6 044K)
      python.exe (     , 4 800K)
        matlab.exe (     , 1 844K)
          MATLAB.exe (<0.01%, 167 324K)

在从Jenkins调用时限制内存或进程使用的子进程是否存在隐藏限制,在其他工作中我没有看到相同的限制。 Matlab的内存分配非常慢(从开始到合理的大小&gt; 100M大约需要一分钟)

(从Process Explorer进行屏幕转储,但我不允许上传)

修改

我还试图将来自Jenkins的单个Windows命令行的调用限制为相同的结果(怀疑深度调用堆栈应该归咎于它)但结果相同。

matlab.exe -nodisplay -nosplash -nodesktop -wait -logfile "log_file.txt" -r "try script_file ;catch err; disp(err.message); end ; exit"

1 个答案:

答案 0 :(得分:1)

通过在Jenkins节点设置中设置 LM_LICENSE_FILE 环境变量来解决此问题。 (找到thread about slow startup

显然,Jenkins启动的shell环境并不完全符合从资源管理器启动的那个。