Added config test for mnttab again.
Added option -s (max sleep time) Added script stats.sh to generate stats.
This commit is contained in:
parent
2a61341c39
commit
0fa08b24ed
|
@ -3,7 +3,7 @@ for i in /etc/mnttab /etc/mtab
|
||||||
do
|
do
|
||||||
if [ -f $i ]
|
if [ -f $i ]
|
||||||
then
|
then
|
||||||
echo '#define MNTTAB "'$i'"'
|
echo '#define PATH_MNTTAB "'$i'"'
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
30
ddm/ddm.c
30
ddm/ddm.c
|
@ -1,5 +1,5 @@
|
||||||
char ddm_c_rcs_id[] =
|
char ddm_c_rcs_id[] =
|
||||||
"$Id: ddm.c,v 1.5 2000-09-07 10:12:35 hjp Exp $";
|
"$Id: ddm.c,v 1.6 2001-02-21 16:02:46 hjp Exp $";
|
||||||
/*
|
/*
|
||||||
* ddm - disk delay monitor
|
* ddm - disk delay monitor
|
||||||
*
|
*
|
||||||
|
@ -24,8 +24,12 @@ char ddm_c_rcs_id[] =
|
||||||
#include <ant/io.h>
|
#include <ant/io.h>
|
||||||
#include <ant/globals.h>
|
#include <ant/globals.h>
|
||||||
|
|
||||||
|
#include "cfg/mnttab.h"
|
||||||
|
|
||||||
|
|
||||||
typedef enum { MODE_NONE, MODE_ARGS, MODE_MNTTAB, MODE_DIRFILE } modeT;
|
typedef enum { MODE_NONE, MODE_ARGS, MODE_MNTTAB, MODE_DIRFILE } modeT;
|
||||||
|
|
||||||
|
|
||||||
static double gettimestamp(void) {
|
static double gettimestamp(void) {
|
||||||
struct timeval tm;
|
struct timeval tm;
|
||||||
|
|
||||||
|
@ -34,7 +38,7 @@ static double gettimestamp(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void usage(void) {
|
static void usage(void) {
|
||||||
fprintf(stderr, "Usage: %s [-d dirfile | -m mnttab | directory ... ]\n",
|
fprintf(stderr, "Usage: %s [-d dirfile | -m mnttab | directory ... ] [-s max_sleep_time]\n",
|
||||||
cmnd);
|
cmnd);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -57,11 +61,14 @@ int main(int argc, char**argv) {
|
||||||
int nr_dirs;
|
int nr_dirs;
|
||||||
int c;
|
int c;
|
||||||
char *filename = NULL;
|
char *filename = NULL;
|
||||||
|
double maxsleeptime = 3600;
|
||||||
|
|
||||||
cmnd = argv[0];
|
cmnd = argv[0];
|
||||||
|
|
||||||
while ((c = getopt(argc, argv, "d:m:")) != EOF) {
|
while ((c = getopt(argc, argv, "d:m:s:")) != EOF) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
char *p;
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
mode = MODE_DIRFILE;
|
mode = MODE_DIRFILE;
|
||||||
filename = optarg;
|
filename = optarg;
|
||||||
|
@ -70,6 +77,10 @@ int main(int argc, char**argv) {
|
||||||
mode = MODE_MNTTAB;
|
mode = MODE_MNTTAB;
|
||||||
filename = optarg;
|
filename = optarg;
|
||||||
break;
|
break;
|
||||||
|
case 's':
|
||||||
|
maxsleeptime = strtod(optarg, &p);
|
||||||
|
if (p == optarg || *p) usage();
|
||||||
|
break;
|
||||||
case '?':
|
case '?':
|
||||||
usage();
|
usage();
|
||||||
default:
|
default:
|
||||||
|
@ -80,7 +91,7 @@ int main(int argc, char**argv) {
|
||||||
if (mode == MODE_NONE) {
|
if (mode == MODE_NONE) {
|
||||||
if (optind == argc) {
|
if (optind == argc) {
|
||||||
mode = MODE_MNTTAB;
|
mode = MODE_MNTTAB;
|
||||||
filename = MNTTAB;
|
filename = PATH_MNTTAB;
|
||||||
} else {
|
} else {
|
||||||
mode = MODE_ARGS;
|
mode = MODE_ARGS;
|
||||||
dirs = argv + optind;
|
dirs = argv + optind;
|
||||||
|
@ -91,6 +102,8 @@ int main(int argc, char**argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
srand(time(NULL));
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int i;
|
int i;
|
||||||
int sleeptime;
|
int sleeptime;
|
||||||
|
@ -181,7 +194,7 @@ int main(int argc, char**argv) {
|
||||||
|
|
||||||
chdir("/");
|
chdir("/");
|
||||||
|
|
||||||
sleeptime = rand() * 3600.0 / RAND_MAX;
|
sleeptime = rand() * maxsleeptime / RAND_MAX;
|
||||||
printtimestamp("sleeping %d seconds\n", sleeptime);
|
printtimestamp("sleeping %d seconds\n", sleeptime);
|
||||||
sleep(sleeptime);
|
sleep(sleeptime);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +205,12 @@ int main(int argc, char**argv) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: ddm.c,v $
|
* $Log: ddm.c,v $
|
||||||
* Revision 1.5 2000-09-07 10:12:35 hjp
|
* Revision 1.6 2001-02-21 16:02:46 hjp
|
||||||
|
* Added config test for mnttab again.
|
||||||
|
* Added option -s (max sleep time)
|
||||||
|
* Added script stats.sh to generate stats.
|
||||||
|
*
|
||||||
|
* Revision 1.5 2000/09/07 10:12:35 hjp
|
||||||
* Added alternate ways to specify directories to be monitored.
|
* Added alternate ways to specify directories to be monitored.
|
||||||
*
|
*
|
||||||
* Revision 1.4 2000/06/04 16:33:21 hjp
|
* Revision 1.4 2000/06/04 16:33:21 hjp
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# simple statistics (min, avg, max) for ddm output
|
||||||
|
|
||||||
|
awk -F : '{ n[$4] ++; s[$4] += $3; if ($3 < min[$4]) min[$4] = $3; if ($3 > max[$4]) max[$4] = $3; }
|
||||||
|
END { for (i in n) { printf "%10.6f %10.6f %10.6f %s\n", min[i], s[i]/n[i], max[i], i } }' "$@" | sort -n +2
|
||||||
|
|
Loading…
Reference in New Issue