From owner-freebsd-performance@FreeBSD.ORG Wed Jan 30 18:19:02 2008 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4063816A41B for ; Wed, 30 Jan 2008 18:19:02 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from mx2.itu.dk (unknown [130.226.142.29]) by mx1.freebsd.org (Postfix) with ESMTP id 0B3FC13C458 for ; Wed, 30 Jan 2008 18:19:02 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from [192.168.1.148] (stud1-15.itu.dk [130.226.140.15]) by mx2.itu.dk (Postfix) with ESMTP id B0B90F4806A for ; Wed, 30 Jan 2008 19:19:00 +0100 (CET) Message-ID: <47A0BFE7.4070708@cederstrand.dk> Date: Wed, 30 Jan 2008 19:20:23 +0100 From: Erik Cederstrand User-Agent: Thunderbird 2.0.0.6 (X11/20071022) MIME-Version: 1.0 To: freebsd-performance@freebsd.org References: <4796C717.9000507@cederstrand.dk> <20080123193400.N63024@fledge.watson.org> <4797A245.7080202@cederstrand.dk> <20080123202433.E63024@fledge.watson.org> <4797A802.8060509@FreeBSD.org> In-Reply-To: <4797A802.8060509@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: Performance Tracker project update X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2008 18:19:02 -0000 Kris Kennaway wrote: > Robert Watson wrote: > > One thing I am looking at is how to best create a library of world > tarballs that can be used to populate a nfsroot (or hybrid of periodic > tarballs + binary diffs to save space). Then you could provide your > benchmark in a standardized format (start/end/cleanup scripts, etc) and > tell a machine "go and run this benchmark on every daily snapshot for > the last year and give me the numbers". Actually, this just bit me. To make packages for installation, I do a standard installworld/kernel/distribution into a directory and a chroot install of the necessary ports. I create a .tgz and the end result is around 90MB (takes ca. 2 hours). Now I have 186 of those, and my file system is full (it's only 15GB, but even a 500GB disk will fill up in 2-3 months with a fast build server). I'd like a situation where I can very quickly set up a slave with a specific version of FreeBSD to run additional tests or provide shell access to a developer. This currently involves adding an entry to a queue, rebooting and waiting 2 minutes. Quick and easy, but the archiving strategy is obviously very inefficient. I'm thinking of a couple of options: 1. Having one full install per month and archiving the rest as diffs against that by recursively bsdiff'ing every file in the tree (I could bsdiff a whole tarball, but bsdiff is very memory-intensive). Quick test: 25 mins. 2. Make a hash of all files and only store the binaries where the hash is different from the monthly tarball. Faster than 1., but less effective. Quick test: 5 mins. 3. Use some kind of VCS. My experience with Subversion and binary files is that it's very slow. 4. Throw hardware at the problem. I'd say it should not take more than 10 mins to recreate an archived version. Any thoughts? Thanks, Erik