У меня есть шаг выполнения сценария Jenkins, который обрабатывает данные Out с Matlab для оценки результатов теста.Плохая производительность Matlab при Jenkins
При запуске сценария из командной строки он запускается и выходит довольно быстро, но при выполнении того же скрипта с теми же аргументами из Jenkins он выполняет чрезвычайно прав. Я получаю сообщение приветствия Matlab в появившемся окне «Только приглашение», но не больше, чем в течение 2 часов, которые я установил для задания.
отключили службу Дженкинс 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
Когда убийство процесса дерево, начиная с Баш это указывает на то, что он унаследовал от 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 очень медленно (от начала до разумного размера> 100M занимает около минуты)
(Есть дамп экрана от Process Explorer, но я не разрешено загружать)
EDIT
Я также попытался ограничить вызов одной командной строки Windows от Дженкинса с тем же результатом (предположительно, что для него был виден стек глубоких вызовов), но тот же результат.
matlab.exe -nodisplay -nosplash -nodesktop -wait -logfile "log_file.txt" -r "try script_file ;catch err; disp(err.message); end ; exit"