Gentoo Archives: gentoo-user

From: Alec Ten Harmsel <alec@××××××××××××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Jenkins
Date: Sat, 20 Jun 2015 19:36:18
Message-Id: 20150620193605.GA5788@apio
In Reply to: [gentoo-user] Jenkins by James
1 On Sat, Jun 20, 2015 at 07:03:18PM +0000, James wrote:
2 > Hello one and all,
3 >
4 >
5 > I want to first install Jenkins on a single multicore amd system, so
6 > I found this brief guide (which seems simple enough):
7 >
8 > https://code.google.com/p/godin-gentoo-repository/wiki/Jenkins
9 >
10
11 I highly recommend playing with the Jenkins docker container to get a
12 feel for using the web UI:
13
14 docker run -p 8080:8080 -d jenkins
15
16 The official jenkins image comes with the bare minimum of libraries so
17 good luck building any C/C++ project, but it is helpful just to point
18 and click around (if you already have docker, that is).
19
20 >
21 > What I also need is an example collection of code to run Jenkins-CI scripts
22 > on, sort of as a benchmark. I figure it would be best to learn about
23 > Jenkins by merely trying to follow/duplicate an existing (hopefully small)
24 > Jenkins CI project. Basically a monkey-see-monkey-duplicate sort of endeavour.
25 >
26 >
27 > This will also allow me to then duplicate the Jenkins-CI onto the gentoo
28 > mesos clusters (small right now) I have built to debug problems or issues
29 > with Jenkins running on a gentoo-mesos-cluster. Ideas on how to perform
30 > comparison (benchmarks) between the single multi-processor Jenkins-CI and
31 > the one on top of a cluster, would be warmly received too.
32 >
33
34 This is not really a fair comparison. Jenkins has no concept of cores,
35 only "executors". Each executor can run one build at a time. Jenkins was
36 written with Java in mind (AFAIK), and Java build tools are the reason
37 for this. `javac` by default launches some number of threads (not sure
38 how many on other systems, but on my laptop it's usually 3) and compiles
39 in parallel. I'm not sure it's possible to control this (someone feel
40 free to correct me if I'm wrong), hence Jenkins does not care about
41 cores and only about how many builds are allowed to run in parallel at
42 once.
43
44 This is different than make and just other build tools in general that
45 I've worked with for other languages.
46
47 So, to the point; when you add more build slaves with more executors,
48 you will be able to run more builds in parallel and it will therefore be
49 faster. This gets even more complicated since you can constrain builds
50 to only run on certain hosts and various other complicated setups, but
51 in general more executors means more builds in parallel means faster.
52
53 >
54 > After that is completed and stable, then I'm going to attempt to move
55 > other codes to this gentoo-mesos-jenkins-CI framework.
56 >
57 >
58 > Any suggestions are most welcome.
59 >
60 > James
61 >
62 >
63
64 My main suggestion is to not bother running a Jenkins cluster and stick
65 with a single host setup unless:
66
67 * You are building so many things that utilization is near 100%
68 * You are targeting multiple platforms and therefore need multiple build
69 hosts
70
71 Alec
72
73 P.S. I could not find any reference to parallel, threads, processes or
74 anything else on javac's man page that makes me think it is easy to set
75 the number of threads it uses.

Replies

Subject Author
[gentoo-user] Re: Jenkins James <wireless@×××××××××××.com>