Weevil: a Distributed System Experiment Automation Tool


News: (June 30, 2009) new release (v1.2.7) of Weevil. This release fixes a couple of minor portability errors. See the ChangeLog for more detail.


This research project addresses the problem of experimenting with highly distributed systems. We use the term highly distributed system to refer to a system capable of delivering a service to many clients through a large number of distributed access points. A highly distributed system usually consists of a network of components, executing independent and possibly heterogeneous tasks, that collectively realize a coherent service. Examples of such systems are various forms of general-purpose communication systems, application-level overlays, networks of caching servers, peer-to-peer file-sharing systems, distributed databases, replicated file systems, and distributed middleware systems in general.

One difficulty software engineers face later in distributed system development process is how to evaluate and tune the alternative designs and implementations. The only solution is systematic, repeatable experimentation with executable prototypes in realistic execution environments. Thus, many large-scale or emulated networks come into being to provide the testbed for such large-scale experiments. However, the large-scale and complicated nature of large-scale network environments and distributed system usage scenarios makes the control of such experiments difficult.

Our tool, Weevil, is to ease the difficulty in programming distributed experiment control scripts by generating them based on some easy-to-write configuration files. It covers a two-phase experimentation process.

Weevil consists of a synthetic-workload generator coupled with an environment for managing the deployment and execution of experiments. Weevil is intended to facilitate experimentation activities for distributed systems by providing engineers with a flexible, configurable, automated and, thus, repeatable process for evaluating their software on a networked testbed. Further, Weevil is not targeted at a specific system or application model, but rather it is a generic, programmable tool.



Current Release


Copyright © 2004-2006 University of Colorado.
Copyright © 2007-2008 Università della Svizzera italiana (USI).

Copyright (C) 2002-2006 University of Colorado Weevil is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Weevil is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Weevil. If not, see http://www.gnu.org/licenses/.

Related software

We extended a parallel tool, vxargs, to allow more arguments included in an arbitrary command (instead of only allowing IP address as arguments in the original vxargs). We thank its auther, Yun Mao, for providing this useful tool. You can download our extended version of vxargs here.


User Manuals

Reference Manuals

Workload Generator Reference Manual

Experiment Environment Reference Manual


this page is maintained by Antonio Carzaniga and was updated on January 18, 2016