我有一个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"
答案 0 :(得分:1)
通过在Jenkins节点设置中设置 LM_LICENSE_FILE 环境变量来解决此问题。 (找到thread about slow startup)
显然,Jenkins启动的shell环境并不完全符合从资源管理器启动的那个。