| When running "freestyle project" (gmake) at slave, java takes high CPU percentage: from 40% to even 70%, 50% maybe considered average. The load does not depend on build-process output. Easy way to reproduce: 1) Create repository with single Makefile that just waits: all: sleep 300 2) Create jenkins "freestyle project" with single build step: make 3) Execute the build at node What you would see at slave is java process taking about 50% CPU waiting for process that does nothing. I tried various options for agent including http://-dhudson.remoting.remoteinvocationhandler/$Unexporter.retainOrigin=false, but it makes no difference. I've run remoting with profiler. Unfortunately I don't have results saved and it's hard for me to repeat this investigation right now, but I remember that most CPU was consumed for I/O read attempts. Child process output stream polling? Anyway - one can easily reproduce it as described above. This affects make-style (freestyle builds) only. E.g. for maven builds, remoting process behaves correctly, I mean it takes few % of CPU. I create it as "Improvement" as it allows builds to run SOMEHOW. But, frankly speaking, for me heating CPU for nothing is a bug. Besides, we have some builds which involve timing-tests - for these ones this is KO as tests cannot complete in such heavily-loaded environment. |