moving Mozilla1.8 tinderboxes to Buildbot - perf impact

Robert Helmer <[email protected]> Fri, 28 Dec 2007 18:43:30 -0800 (PST)
Newsgroups gmane.comp.mozilla.performance
Organization http://groups.google.com
Message-ID <e5938a59-d915-4e94-b096-65451a6e50ac@s19g2000prg.googlegroups.com>
Cross-posting to m.d.performance this time, as people who care about
this likely do not watch m.d.builds only.

I've been working on moving the Mozilla1.8 branch tinderboxes to be
under Buildbot control, by merging nightly builders into the release
automation project http://wiki.mozilla.org/Build:Release_Automation

You can see the results of the staging machine:
http://tinderbox.mozilla.org/Mozilla1.8-Staging/

Currently there are 4 automatically forced builds per day (to keep the
boxes from falling off of the Tinderbox waterfall, and make sure we
get a timely nightly), and besides that it only builds on checkin. If
we can teach Tinderbox server not to drop these builders, then I think
the ideal would be once forced nightly release and besides that only
build on checkin.

This is all well and good, but the perf impact I mention in the title
is that the current build machines build as often as possible, and
perf machines pick up the results as soon as each build come out.
Builds generally outrun the perf results, but we get a lot of perf
runs as a side-effect of the constant build cycles.

I think only building on checkin plus one nightly release is the right
thing to do, as it reduces cycle time and makes machines available for
other tasks (releases, verification, etc). However, if we do this then
the perf boxes will sit idle until a checkin, and we get fewer perf
runs as a result.

If this is a problem, one idea I had was to just do as many perf runs
as possible on the same build, until a new one is available. However
the perf machines currently use the start time of the build they are
testing, this has the nice effect of matching up with checkins. The
problem we'll run into is overlap between the time a perf run started
and the time a build for it finished, we won't easily be able to
correlate checkins with perf runs.

if we want to do multiple perf run results per build, this is
something we'd need to teach tinderbox server and the graph server
about, as they currently don't support this. I think what would make
more sense is being able to declare a revision (branch/timestamp combo
is the equivalent for CVS) and also the time that the perf run
happened, right now there is no difference.

Any thoughts? If 4 times per day plus on checkin is not enough to get
reasonable perf numbers, we can go live with continuous build cycling
instead (this is the only issue I am blocked on!), just seems a shame
to do a new build when all we really need is a new perf run.