Re: freebsd perf testing

2013-11-12 Thread George Neville-Neil

On Nov 10, 2013, at 19:22 , Tim Kientzle t...@kientzle.com wrote:

 
 On Nov 10, 2013, at 1:05 PM, Erik Cederstrand erik+li...@cederstrand.dk 
 wrote:
 
 Imagine being able to fetch a VirtualBox disk image for a random SVN commit, 
 booting it and start debugging right away. 
 
 I’ve been working on Crochet’s support for building
 VMWare images recently and have started using
 that approach to iterate my dev environment
 (using one VM to build a new VM instead of
 upgrading in place).
 

Sorry to come in late.  All this sounds good, and I’d like to point out that 
the project has network
testing hardware in place, if people want to use it for these types of 
experiments.  In the absence
of a lab just for regression testing (which is also in the works) I’d suggest 
that prototyping be done
here:

https://wiki.freebsd.org/TestClusterOnePointers

Anyone who is a FreeBSD committer can get access, and those who want access but 
are not
yet committers should contact me so we can try to work something out.

Best,
George



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: freebsd perf testing

2013-11-10 Thread Julian Elischer

On 11/9/13, 1:24 PM, Erik Cederstrand wrote:

Hi Julian,

Den 08/11/2013 kl. 03.02 skrev Julian Elischer jul...@elischer.org:


Some time ago someone showed some freebsd performance graphs graphed against 
time.
He had them up on a website that was updated each day or so.

I think they were network perf tests but I'm not sure.
He indicated that he was going to continue the daily testing
but I've not seen any mention of them since.

If you know who that was or how to find him let me (or gnn) know...

I did a master’s thesis on this some years ago. I haven’t kept the project 
up-to-date, due to lack of time and hardware.


it would be interesting to know what you did. and what conclusions you 
came to..


the actual web page I was thinkng of was:
http://lists.freebsd.org/pipermail/freebsd-current/2013-April/041323.html

but the more players we have thinking about this the better..

it would be good if we could have some project supported way to follow 
this.
it may be that we could make a 'contributor' image that has all the 
tools and
framework on it that would allow people to submit daily reports (from 
the same hardware each time)

to some central aggregator..  or maybe ot would all be project resources.
I see that  Mr Symbolics (is that his real name?) has some suggestions 
in another mail in this thread.
I wasn't really going to be doing much in this space myself  though I 
think it is important,

I just volunteered in the meeting to try find some examples.

Julian




Erik
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org




___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-10 Thread Erik Cederstrand
Den 10/11/2013 kl. 09.45 skrev Julian Elischer jul...@freebsd.org:
 
 it would be interesting to know what you did. and what conclusions you came 
 to..

I created a system with a build server, a set of slaves, and a website to 
collect and publish the benchmark data in graphs and raw data and highlight 
significant changes.

The build server built FreeBSD and any required ports and benchmark software, 
and bundled it in installation images complete with a script to run the 
benchmarks on the slave and push data to the website.

The slaves were dedicated machines that booted via PXE, wiped the hard drive, 
fetched and installed an image and proceeded to run the specified benchmarks.

The website published graphs, and the graphs were linked to useful related data 
like raw measurements, slave hardware, commit messages, changed source files 
and binaries etc.

It actually worked pretty well. I only ran benchmarks over a couple of months 
of commits, but I did identify some significant regressions in MySQL and some 
of the unixbench microbenchmarks. I did not spend much time designing the 
benchmarking strategy, and “symbolics” has many good points there. I did find 
out that all the current continuous integration / performance benchmark 
frameworks (Jenkins etc) did not play well with a situation where the entire 
operating system is reinstalled.

A wide range of useful benchmarks can be collected in just 10-20 minutes, but 
building FreeBSD and all the ports takes much longer than that (1-2 hours using 
the default procedure from the handbook). Most of my work went into optimizing 
build times, installation image sizes and slave installation times, so I could 
build an image in just 10-15 minutes and use ca. 10MB disk space amortized, and 
install an image on a slave in just 2 minutes (cheap 2008-era hardware).

But having a complete archive of ready-to-install images for each commit is a 
real advantage, not just for performance benchmarking. Imagine being able to 
fetch a VirtualBox disk image for a random SVN commit, booting it and start 
debugging right away. Or you could write a script to test if a bug is present 
in a FreeBSD installation, and then let an automated process do a binary search 
to find the offending commit in maybe less than an hour.

My work was completed in 2008 and would (at least) require updating the scripts 
to handle the upgrade from GCC to Clang, and from CVS to SVN.

Erik
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-10 Thread Tim Kientzle

On Nov 10, 2013, at 1:05 PM, Erik Cederstrand erik+li...@cederstrand.dk wrote:

 Imagine being able to fetch a VirtualBox disk image for a random SVN commit, 
 booting it and start debugging right away. 

I’ve been working on Crochet’s support for building
VMWare images recently and have started using
that approach to iterate my dev environment
(using one VM to build a new VM instead of
upgrading in place).

Tim

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-09 Thread symbolics
On Fri, Nov 08, 2013 at 12:28:02PM -0800, Julian Elischer wrote:
 On 11/8/13, 1:54 AM, Olivier Cochard-Labbé wrote:
  On Fri, Nov 8, 2013 at 3:02 AM, Julian Elischer jul...@elischer.org 
  mailto:jul...@elischer.orgwrote:
 
  Some time ago someone showed some freebsd performance graphs
  graphed against time.
  He had them up on a website that was updated each day or so.
 
  I think they were network perf tests but I'm not sure.
  He indicated that he was going to continue the daily testing
  but I've not seen any mention of them since.
 
  If you know who that was or how to find him let me (or gnn) know...
 
 
  Hi Julian,
 
  Perhaps you are referring to my network performance graphs on this 
  thread:
  http://lists.freebsd.org/pipermail/freebsd-current/2013-April/041323.html
 
 
 yes, you are the person we are looking for.
 In yesterday's 'vendor summit' we were discussing performance 
 monitoring and your methodology was cited as one worth looking at.
 
 The idea of graphing the output of various performance tests against 
 svn commit number is a very good one.
 I thonk it migh teven be worth doing these tests daily, and putting 
 the output onto a web site, showing the last month, the last year and 
 the whole range.
 it would even be interesting to put out 'xplot' files so that people 
 can zoom in and out using xplot to see exactly which revision was 
 responsinble for reversions or problems.
 
 George..  this is what we mentioned at the meeting yesterday.
 
 Julian
 

As it happens I've been thinking over a design for something along these
lines recently. It's just some ideas at the moment but it might be of
interest to others. Forgive me; it's a long E-mail and it gets a bit
pie-in-the-sky too.

I was prompted to think about the problem in the first place because I
read commit mail and I see performance related changes going into the
tree from time to time. These changes often do not come with any
specific data and when they do its normally quite narrow in focus. For
instance, an organisation contributes performance improvements specific
to their workloads and without interest in anyone elses (fair enough).

Initially, what I wanted was a way of viewing how performance changed
for a number of workloads on a commit by commit basis. This sounds very
much like what you are after.

Anyway, after thinking about this for sometime it occurred to me that
much of the infrastructure required to do performance testing could be
generalised to all sorts of software experiments. E.g. software builds,
regression tests, and so on. So, my first conclusion was: build an
experimentation framework within which performance is one aspect.

Having decided this, I thought about the scope of experiments I wanted
to make. For instance, it would be good to test at least every supported
platform. On top of that I would like to be able to vary the relevant
configuration options too. Taking the product of commit, platform,
n-configuration options (not to mention compilers, etc...) you start to
get some pretty big numbers. The numbers grow far too fast and no person
or even organisation could feasibly cover the hardware resources
required to test every permutation. This led me to my next conclusion:
build a distributed system that allows for anyone to contribute their
hardware to the cause. Collectively the project, vendors, and users
could tackle a big chunk of this.

My rough sketch for how this would work is as follows. A bootable USB
image would be made for all platforms. This would boot up, connect to
the network and checkout a repository. The first phase of the process
would be to profile what the host can offer. For example, we might have
experiments that require four identical hard drives, or a particular CPU
type, and so on. Shell scripts or short programmes would be written,
e.g. has-atom-cpu, with these returning either 1 or 0.

The results of this profiling would be submitted to a service. The
service matches the host with available experiments based on its
particular capabilities and current experimental priorities laid down by
the developers. A priority system would allow for the system to be
controlled precisely. If, for instance, major work is done to the VM
subsystem, relevant experiments could be prioritised over others for a
period.

Once a decision on the experiment to conduct has been made, the relevant
image must be deployed to the system. Free space on the USB device would
be used a staging area, with a scripted installation occurring after
reboot. The images would need to be built somewhere, since it doesn't
make sense to rebuild the system endlessly, especially if we're
including low-powered embedded devices (which we should be). One
possible solution to this would be to use more powerful contributed
hosts to cross-build images and make them available for download.

Finally, the experiments would be conducted. Data produced would be
submitted back to the project using 

Re: freebsd perf testing

2013-11-09 Thread Erik Cederstrand
Hi Julian,

Den 08/11/2013 kl. 03.02 skrev Julian Elischer jul...@elischer.org:

 Some time ago someone showed some freebsd performance graphs graphed against 
 time.
 He had them up on a website that was updated each day or so.
 
 I think they were network perf tests but I'm not sure.
 He indicated that he was going to continue the daily testing
 but I've not seen any mention of them since.
 
 If you know who that was or how to find him let me (or gnn) know...

I did a master’s thesis on this some years ago. I haven’t kept the project 
up-to-date, due to lack of time and hardware.

Erik
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-09 Thread Alan Somers
On Sat, Nov 9, 2013 at 6:37 AM,  symbol...@gmx.com wrote:
 On Fri, Nov 08, 2013 at 12:28:02PM -0800, Julian Elischer wrote:
 On 11/8/13, 1:54 AM, Olivier Cochard-Labbé wrote:
  On Fri, Nov 8, 2013 at 3:02 AM, Julian Elischer jul...@elischer.org
  mailto:jul...@elischer.orgwrote:
 
  Some time ago someone showed some freebsd performance graphs
  graphed against time.
  He had them up on a website that was updated each day or so.
 
  I think they were network perf tests but I'm not sure.
  He indicated that he was going to continue the daily testing
  but I've not seen any mention of them since.
 
  If you know who that was or how to find him let me (or gnn) know...
 
 
  Hi Julian,
 
  Perhaps you are referring to my network performance graphs on this
  thread:
  http://lists.freebsd.org/pipermail/freebsd-current/2013-April/041323.html
 

 yes, you are the person we are looking for.
 In yesterday's 'vendor summit' we were discussing performance
 monitoring and your methodology was cited as one worth looking at.

 The idea of graphing the output of various performance tests against
 svn commit number is a very good one.
 I thonk it migh teven be worth doing these tests daily, and putting
 the output onto a web site, showing the last month, the last year and
 the whole range.
 it would even be interesting to put out 'xplot' files so that people
 can zoom in and out using xplot to see exactly which revision was
 responsinble for reversions or problems.

 George..  this is what we mentioned at the meeting yesterday.

 Julian


 As it happens I've been thinking over a design for something along these
 lines recently. It's just some ideas at the moment but it might be of
 interest to others. Forgive me; it's a long E-mail and it gets a bit
 pie-in-the-sky too.

 I was prompted to think about the problem in the first place because I
 read commit mail and I see performance related changes going into the
 tree from time to time. These changes often do not come with any
 specific data and when they do its normally quite narrow in focus. For
 instance, an organisation contributes performance improvements specific
 to their workloads and without interest in anyone elses (fair enough).

 Initially, what I wanted was a way of viewing how performance changed
 for a number of workloads on a commit by commit basis. This sounds very
 much like what you are after.

 Anyway, after thinking about this for sometime it occurred to me that
 much of the infrastructure required to do performance testing could be
 generalised to all sorts of software experiments. E.g. software builds,
 regression tests, and so on. So, my first conclusion was: build an
 experimentation framework within which performance is one aspect.

 Having decided this, I thought about the scope of experiments I wanted
 to make. For instance, it would be good to test at least every supported
 platform. On top of that I would like to be able to vary the relevant
 configuration options too. Taking the product of commit, platform,
 n-configuration options (not to mention compilers, etc...) you start to
 get some pretty big numbers. The numbers grow far too fast and no person
 or even organisation could feasibly cover the hardware resources
 required to test every permutation. This led me to my next conclusion:
 build a distributed system that allows for anyone to contribute their
 hardware to the cause. Collectively the project, vendors, and users
 could tackle a big chunk of this.

 My rough sketch for how this would work is as follows. A bootable USB
 image would be made for all platforms. This would boot up, connect to
 the network and checkout a repository. The first phase of the process
 would be to profile what the host can offer. For example, we might have
 experiments that require four identical hard drives, or a particular CPU
 type, and so on. Shell scripts or short programmes would be written,
 e.g. has-atom-cpu, with these returning either 1 or 0.

 The results of this profiling would be submitted to a service. The
 service matches the host with available experiments based on its
 particular capabilities and current experimental priorities laid down by
 the developers. A priority system would allow for the system to be
 controlled precisely. If, for instance, major work is done to the VM
 subsystem, relevant experiments could be prioritised over others for a
 period.

 Once a decision on the experiment to conduct has been made, the relevant
 image must be deployed to the system. Free space on the USB device would
 be used a staging area, with a scripted installation occurring after
 reboot. The images would need to be built somewhere, since it doesn't
 make sense to rebuild the system endlessly, especially if we're
 including low-powered embedded devices (which we should be). One
 possible solution to this would be to use more powerful contributed
 hosts to cross-build images and make them available for download.

 Finally, 

Re: freebsd perf testing

2013-11-09 Thread Erik Cederstrand
Hi Julian,

Den 08/11/2013 kl. 03.02 skrev Julian Elischer jul...@elischer.org:

 Some time ago someone showed some freebsd performance graphs graphed against 
 time.
 He had them up on a website that was updated each day or so.
 
 I think they were network perf tests but I'm not sure.
 He indicated that he was going to continue the daily testing
 but I've not seen any mention of them since.
 
 If you know who that was or how to find him let me (or gnn) know...

I did a master’s thesis on this some years ago. I haven’t kept the project 
up-to-date, due to lack of time and hardware.

Erik
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-08 Thread Olivier Cochard-Labbé
On Fri, Nov 8, 2013 at 3:02 AM, Julian Elischer jul...@elischer.org wrote:

 Some time ago someone showed some freebsd performance graphs graphed
 against time.
 He had them up on a website that was updated each day or so.

 I think they were network perf tests but I'm not sure.
 He indicated that he was going to continue the daily testing
 but I've not seen any mention of them since.

 If you know who that was or how to find him let me (or gnn) know...


Hi Julian,

Perhaps you are referring to my network performance graphs on this thread:
http://lists.freebsd.org/pipermail/freebsd-current/2013-April/041323.html

I didn't generate other tests since because I need to fix the test used
before continuing.
I only generate one IP-flow (same IP src/dst, same UDP port): there is no
IP distribution. And by generating only one flow, we didn't use the
multi-queue NIC capability, neither the multi-threaded features (like with
the SMP-pf) of FreeBSD forwarding/firewalling stack.
I plan to add the support of generating multiple IP source/destination to
the netmap pkt-gen, but the current status of this project is: I'm at page
42 of the book C programming, a modern approach, then you have to wait :-)

By the way, I've documented a little more my benching lab and scripts used
here:
http://bsdrp.net/documentation/examples/freebsd_performance_regression_lab

Regards,

Olivier
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: freebsd perf testing

2013-11-08 Thread Julian Elischer

On 11/8/13, 1:54 AM, Olivier Cochard-Labbé wrote:
On Fri, Nov 8, 2013 at 3:02 AM, Julian Elischer jul...@elischer.org 
mailto:jul...@elischer.orgwrote:


Some time ago someone showed some freebsd performance graphs
graphed against time.
He had them up on a website that was updated each day or so.

I think they were network perf tests but I'm not sure.
He indicated that he was going to continue the daily testing
but I've not seen any mention of them since.

If you know who that was or how to find him let me (or gnn) know...


Hi Julian,

Perhaps you are referring to my network performance graphs on this 
thread:

http://lists.freebsd.org/pipermail/freebsd-current/2013-April/041323.html



yes, you are the person we are looking for.
In yesterday's 'vendor summit' we were discussing performance 
monitoring and your methodology was cited as one worth looking at.


The idea of graphing the output of various performance tests against 
svn commit number is a very good one.
I thonk it migh teven be worth doing these tests daily, and putting 
the output onto a web site, showing the last month, the last year and 
the whole range.
it would even be interesting to put out 'xplot' files so that people 
can zoom in and out using xplot to see exactly which revision was 
responsinble for reversions or problems.


George..  this is what we mentioned at the meeting yesterday.

Julian


I didn't generate other tests since because I need to fix the test 
used before continuing.
I only generate one IP-flow (same IP src/dst, same UDP port): there 
is no IP distribution. And by generating only one flow, we didn't 
use the multi-queue NIC capability, neither the multi-threaded 
features (like with the SMP-pf) of FreeBSD forwarding/firewalling stack.
I plan to add the support of generating multiple IP 
source/destination to the netmap pkt-gen, but the current status of 
this project is: I'm at page 42 of the book C programming, a modern 
approach, then you have to wait :-)


By the way, I've documented a little more my benching lab and 
scripts used here:

http://bsdrp.net/documentation/examples/freebsd_performance_regression_lab

Regards,

Olivier


___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


freebsd perf testing

2013-11-07 Thread Julian Elischer
Some time ago someone showed some freebsd performance graphs graphed 
against time.

He had them up on a website that was updated each day or so.

I think they were network perf tests but I'm not sure.
He indicated that he was going to continue the daily testing
but I've not seen any mention of them since.

If you know who that was or how to find him let me (or gnn) know...

Julian

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org