|
Just setup a new Jenkins slave running on Debian 6/Squeeze. Did the simple SSH method and everything went quite smoothly. Now I have configured one of my builds to use this new slave with a very odd effect. That is that there are long delays periodically in the build.
Here is some sample output: Building remotely on dcc-jenkins-slave in workspace /home/intouch/jenkins_work/workspace/intouch-qa Checkout:intouch-qa / /home/intouch/jenkins_work/workspace/intouch-qa - hudson.remoting.Channel@41cc3f28:dcc-jenkins-slave Using strategy: Default Last Built Revision: Revision 29258d9508c3cf5a7b8a6e867d1e18ef88e9408d (origin/nexus)<<< 10 MINUTE DELAY HERE >>>Fetching changes from 1 remote Git repository Fetching upstream changes from ssh://[hidden email]/foo/barCommencing build of Revision 29258d9508c3cf5a7b8a6e867d1e18ef88e9408d (origin/nexus)Checking out Revision 29258d9508c3cf5a7b8a6e867d1e18ef88e9408d (origin/nexus)Starting xvnc[intouch-qa] $ vncserver :11 -geometry 800x600New 'X' desktop is jenkins-slave:11 Starting applications specified in /home/intouch/.vnc/xstartup Log file is /home/intouch/.vnc/jenkins-slave:11.log Parsing POMs<<< 10 MINUTE DELAY HERE >>>etc... |
|
The following groovy runs nice and quick on the master, but on my slave it takes 6-7 minutes!!
def proc = "ssh -T [hidden email]".execute() def b = new StringBuffer() proc.consumeProcessErrorStream(b) println proc.text println b.toString() Any help would be much appreciated!!
|
|
My build that takes around 8 minutes locally took 3 hours and 56 minutes on the slave!! Does anyone have any useful advice that would help me diagnose this?
My initial thought that it was an SSH issue involving reverse lookups. However, my operations guys say that reverse lookup is working fine. That being said, it seems that it isn't just SSH actions that are taking a long time, as there are massive delays throughout the entire build. /Collin
|
|
You might consider configuring various small test jobs, each using some subset of the capabilities you need in your build. For example, use the Git plugin, but clone a small repository from github.com with the git protocol rather than cloning your own repository. If that is fast, then clone a small repository from github.com with ssh. If your job is a maven job, then try a sample maven project from outside your organization. Invoke a trivial Hello World job with your preferred build technique to see if the build environment is the problem. Etc. Mark Waite
|
|
It is a Maven job. I built the Twilio (https://github.com/twilio/twilio-java) library using all different ways. Results is 25 seconds local (both git & ssh) and 5 min 30 seconds on slave (both git & ssh)
The only odd thing that I have noticed so far is that the slave is using twice as much memory as the master when both are idle. Master is 720 GB, slave is 1.5 GB. Something seems off there. During the build the master goes to 1.91 GB and the slave to 2.74. Something seems wrong with that. Is 1.5GB on idle usage seem normal? If I disconnect the slave the memory goes to 90MB. Both the master and slave are Debian 6.0 (squeeze) installs running in virtual machines. The other thing of note is that they are in physically different locations running across a VPN. Ping time is 400ms.
/Collin On Wed, May 9, 2012 at 9:02 PM, Mark Waite <[hidden email]> wrote:
|
|
That seems to hint that the difference between the machines is outside the specific job definition. I'm not sure what hints to offer to seek for other differences between the machines, though you might check for things like: - Are they the same architecture (both x64, both x86, etc.)? - Are they running the same Java virtual machine and the same version of JVM? Sorry I don't have other insights to offer... Mark Waite
|
|
In reply to this post by Collin Peters
What OS is your master running? 32 or 64 bit? How much memory do the master and slave have? Are they doing a lot of other things than running Jenkins? What JVM are you running? 32 or 64 bit? What are those memory figures you quoted? Are they from top? From jconsole? Is that RSS usage or virtual? What are the JVM command line options you use, both for master and slave? Is the slave swapping during the build? I suggest you run top/htop, vmstat, and jconsole attached to both master and slave and try to gather information about what is going on. -- Sami
|
|
Thanks for the help guys. Here is some info
I will try to run some more advanced stats during a build. Is there a way to tell what exactly Jenkins is doing any any particular second? i.e. a break? /Collin On Fri, May 11, 2012 at 11:50 PM, Sami Tikka <[hidden email]> wrote:
|
| Powered by Nabble | Edit this page |
