Brahma Resources Page

This is the official home page for the Duke University Physics Department's Brahma Beowulf Project. Please feel free to explore this website. There are a number of things on the site itself that may be of use or interest to individuals interested in beowulf-style cluster computing.

This site is maintained by rgb. It and all works linked thereupon authored by Robert G. Brown are Copyright 2003 (or as indicated in the document) and made available through a modified Open Publication License unless superceded by another license directly associated with the document. (Current site version 2.2-1)

Home Top Beowulf Book Intro 2003 Duke Model Helicity Intro to IP Local IP admin Contact About
xmlsysd wulfstat wulflogger wulfweb cpu_rate C++ Rant

Site Links






Robert G. Brown
Duke University Physics Department
Durham, NC 27708-0305
Copyright Robert G. Brown, 2017


Wulfware: A Cluster Monitoring Suite

by Robert G. Brown (rgb)

wulfware Version 1.0.1


Back to top


wulfware is a suite of applications that provide remote monitoring information on a beowulf- or GRID-style compute cluster, a server farm, or LAN. It consists of the following tools:

  • xmlsysd, a daemon that runs on the host to be monitored. xmlsysd can be run under xinetd or as a standalone forking daemon. It extracts information from /proc, from systems calls, and from selected tools or files, packs it into a set of XML tags, and returns that information to the connected monitor host(s). The daemon can be throttled to return only the information a monitor interface requires to support a particular display.
  • wulfstat, an ncurses based monitor interface. wulfstat permits one to monitor an entire cluster or LAN. Statistics it provides include a vmstat-like display, load averages only, network statistics only, memory information only, system configuration information and duty cycle only, and running processes with or without the full command line. A cluster or LAN can easily be defined with a few simple commands in an XML-based "wulfhosts" file.
  • wulflogger, a command line monitor interface that extracts more or less the same data as wulfstat in similarly named displays and writes them in formatted lines to stdout. This data format can easily be parsed by scripting languages such as perl or python, or it can be piped into a file for an archival record of cluster activity. The data can thus be used to generate a variety of reports, including web or graphical reports.
  • wulfweb, an perl-cgi script to generate a web view of cluster statistics using wulflogger. Currently this is basically a working perl template for data extraction that can be modified into whatever kind of display one likes.
  • libwulf, the common library upon which wulfstat and wulflogger are based. It encapsulates the routines that parse wulfhosts and build the requisite data structures, manage the connections to all hosts, and poll all connected hosts and extract the desired data from the xmlsysd return.

The libwulf core can be recycled into a real e.g. GTK GUI version of wulfstat (and beyond) but so far I haven't had time to mess with this. Eventually I'll tackle this task. If anyone else wants to write and contribute back a GUI interface, feel free; I will cheerfully add your contribution to the wulfware collection.

If you use these tools you may want to join the Wulfware Mailing List. This is a low traffic list that is used primarily for announcments (such as the release of a new version) and limited reporting of bugs or discussion of features. Check out the archives to get a feel for the level of traffic.

Back to top


Starting with 0.6.0, libwulf is compiled with gcc's -std=c99 option. This is required to access e.g. unsigned long long ints, which are in turn required by the 2.6.x kernel which contains a number of parameters in /proc that were formerly unsigned long ints. Libwulf has also been modified to accomodate xmlsysd changes associated new fields (and hence new tags) and changes in format in /proc in the 2.6 kernel as well, although this should not affect compatibility/usability with 2.4 kernels. However, it may produce problems on systems with older gcc's. Please report any problems to the wulfware list or directly to rgb.


Document TypeSize (K)Last Modified
License Info

Except where explicitly indicated otherwise, the documents linked from this page are all provided under a modified Gnu License appropriate for the document type (OPL for text, GPL for software/source). Please read the relevant license(s) before redistributing the document(s) in any form -- an explicit agreement with the author is required for certain kinds of for-profit redistributions. In all cases the license makes the documents generally available for unlimited personal use and non-profit distributions (for example, linking or posting copies on a website, distributing paper copies to a class for free or at cost).

The author cherishes feedback. If you like or dislike the document(s) and would like to say so, wish to redistribute a version in any medium to be sold at a profit, would like to contribute or comment on material, or just want to say hi, feel free to contact the author

Home Top Beowulf Book Intro 2003 Duke Model Helicity Intro to IP Local IP admin Contact About
xmlsysd wulfstat wulflogger wulfweb cpu_rate C++ Rant

This page is maintained by Robert G. Brown: