|
|
| |
JSD(1) |
FreeBSD General Commands Manual |
JSD(1) |
jsd —
simple command scheduling daemon for remote execution
jsd |
[-iqv ] [-f
fanout] [-g
rungroup1,...,rungroupN] [-l
username] [-p
port] [-o
port] [-w
node1,...,nodeN] [-x
node1,...,nodeN] [command
...] |
The jsd daemon is used to schedule remote execution of
jobs across a heterogenous cluster of machines. Upon starting the daemon, it
will attempt to run a benchmark on all machines under it's control. Once the
daemon is active it listens for connections from a jsh
process, and gives each connecting process the name of a remote host to
execute a command on. Faster hosts are preferred by the
jsd daemon, and the fastest of all remaining hosts
will allways be given out first. Once a remote jsh process
has completed it's use of the remote host, it will again contact the
jsd daemon, and return the node to service. The daemon
will never give the same node out to more than one process at a time.
jsd logs errors and critical conditions to
the syslog with the facility LOG_DAEMON .
The following options are available:
-i
- The
-i option will list information about the
current cluster, and command groupings. It will print out the current
value of the fanout, and how many groups of machines there are within the
cluster. It will also show you which command you are about to run, and
your username if specified with the -l
option.
-q
- The
-q option does not issue any commands, but
displays information about the cluster, and the fanout groupings.
-v
- Prints the version of ClusterIt to the stdout, and exits.
-f
- If the
-f option is specified, followed by a
number, it sets the fanout size of the cluster. The fanout size is the
number of nodes a command will run on in parallel at one time. Thus a 80
node cluster, with a fanout size of 64, would run 64 nodes in parallel,
then, when all have finished, it would execute the command on the last 16
nodes. The fanout size defaults to 64. This option overrides the
FANOUT environment variable.
-g
- If the
-g option is specified, followed by a comma
separated list of group names, the command will only be run on that group
of nodes. A node may be a part of more than one group if desired, however
running without the -g option will run the command
on the same node as many times as it appears in the file specified by the
CLUSTER environment variable. This option is
silently ignored if used with the -w option.
-l
- If the
-l option is specified, followed by a
username, the commands will be run under that userid on the remote
machines. Consideration must be taken for proper authentication, for this
to work.
-p
- The
-p option can be used to set the port number
which jsd will listen to replies from
jsh processes indicating completion of processing on
remote nodes. This option overrides the JSD_IPORT
environment variable. The default listen port is 2001.
-o
- The
-o option can be used to set the port number
which jsd will listen to requests from
jsh processes for remote nodes. This option overrides
the JSD_OPORT environment variable. The default
listen port is 2002.
-w
- If the
-w option is specified, followed by a comma
delimited list of machine names, the command will be
run on each node in the list. Without this option,
jsd runs on the nodes listed in the file pointed
to by the CLUSTER environment variable.
-x
- The
-x option can be used to exclude specific
nodes from the cluster. The format is the same as the
-w option, a comma delimited list of machine
names. This option is silently ignored if used with the
-w option.
jsd utilizes the following environment variables:
CLUSTER
- Contains a filename, which is a newline separated list of nodes in the
cluster.
RCMD_CMD
- Command to use to connect to remote machines. The command chosen must be
able to connect with no password to the remote host. Defaults to
rsh . This is only used by
jsd when issuing the benchmark at startup, and has
no effect on how jsh processes will connect to the
remote nodes.
RCMD_CMD_ARGS
- Arguments to pass to the remote shell command. Defaults to none. As with
RCMD_CMD this is only used when issuing the
benchmark at startup.
JSD_BENCH_CMD
- This is the name of a command, which when run on the remote nodes of the
cluster will give some indication of the relative speed of the machines.
It does not need to be precise. If no benchmark command is specified, all
machines are considered to be the same speed, and will not be wieghted.
The bench command expects a single floating point number as the only
output to the remote command. Larger numbers are to indicate faster
machines. See the EXAMPLES section for more
details.
FANOUT
- When set, limits the maximum number of concurrent commands sent at once.
This can be used to keep from overloading a small host when sending out
commands in parallel. Defaults to 64. This environment setting can be
overridden by the
-f option.
JSD_OPORT
- When set, overrides the default port which
jsd
listens on for jsh processes requesting nodes. This
environment setting can be overriden by the -o
option.
JSD_IPORT
- When set, overrides the default port which
jsd
listens on for jsh processes reporting back that it has
completed processing on a node. This environment setting can be overriden
by the -p option.
In order to generate a benchmark figure useful to jsd
you will most likely need to process the ouput of a benchmark command in some
way. There are two simple ways of doing this:
The first way is to build a script, which exists on each machine,
and run that as your benchmark command. The below script shows how to
process the output of the
whetstone(1)
command into a format useable by jsd :
#!/bin/sh
./whetstone 100000 | grep MIPS | sed -e 's|.*: \(.*\) MIPS|\1|'
The other way, would be to run a more involved benchmark on each
machine, (or assign numbers arbitrarily) and place them in a file on the
remote machines. A benchmark command could then simply be
cat /etc/benchmark or some other similar setup.
The jsd command first appeared in clusterit 2.0. It
should be pronounced “jez-dee”, and stands for ‘Job
Scheduling Daemon’.
Jsd was written by Tim Rightnour.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |