xmlsysd
by
Robert G. Brown
Duke University Physics Department
Durham, NC 27708-0305
Copyright Robert G. Brown, 2013
Abstract
xmlsysd (v 0.2.3, i386 tested for RH 9, i386 and x86_64 tested for
FC1 and FC2 ) is a daemon that runs on a workstation or
workstation-style cluster node in a beowulf or compute cluster or
departmental LAN. It provides a socket connection to an (unprivileged)
engine that parses various parts of /proc and executes certain system
information calls on behalf of the remote user without the expense of a
shell connection or multiple tools or pipes. This information is
wrapped up in a customized xmlish and returned via socket to the
client.
The daemon has several features that make it especially lightweight
on the client. It can be "throttled", so that it only returns
information that the user specifically wants to monitor. It opens once
and then uses a rewind on all the /proc files that it can to avoid
excessive fstat and file open overhead. In most cases all the
information of interest to a user can be transmitted in a single TCP
packet and hence at a fixed, minimal "cost" in terms of systems
resources like CPU and network bandwidth.
xmlsysd can currently monitor load average, memory utilization,
network utilization, a variety of systems parameters of interest in
constructing a load-balanced distribution of jobs (e.g. CPU type, clock,
cache), date and time, "duty cycle" (fraction of CPU clocks actually
used since the last reboot) and running jobs, masked by task name or
user.
The associated wulfstat application
provides a simple tty (xterm) interface to the daemon, permitting an
entire LAN's worth of workstations or beowulf nodes to be monitored from
virtually anywhere. wulflogger is a
related application built from the same library as wulfstat that dumps
wulfstat-like displays to stdout, from where they can easily be parsed
by e.g. a perl or python application for further display. wulfweb is such a demo application -- wulfweb
uses wulflogger to monitor a cluster and create an automatically updated
web page with (currently only load average) data colorfully and
efficiently displayed for the whole cluster.
The xmlish language xmlsysd uses to return information should make it
easy to construct e.g. a web-based display or a native GUI, should
either of these be preferred. Eventually I'll tackle these tasks using
the libwulf library provided with wulfstat or wulflogger, but for now
the tools above are pretty useful as they stand.
SPECIAL NOTE: From 0.6.0 on, xmlsysd will not distribute
binary rpms as there is a distinct split in architecture upon us on top
of the already wide split in distribution. Instead it will be
distributed in tarball format and in hopefully easily rebuildable source
rpms. Binary rpm distribution will resume only in the form of a
yum-accessible repository, per architecture, at least for architectures
I can locally build. Since xmlsysd is appearing in more regular linux
distributions, one can hope that this won't be much of a problem.
Ideas and patches have been contributed by Morten Kjeldgaard, Andy
Fant, and Erwan Velu, and rgb gratefully acknowledges the help.
|
Contents
|