Calculating queries per second (BIND 9)
Chris Pile
cpile at snoogans.co.uk
Mon May 21 16:23:36 UTC 2001
I've hacked together a quick perl script to do just this. Seems to work
quite well, although the method is a little long winded. I may change
to using a more efficient method (hashes etc).
Still, it works a treat. "perldoc rndcstats.pl" for info and usage
syntax.
Basically when you run it, initially do "./rndcstats.pl start", then
after that use "./rndcstats.pl". Pretty simple really.
Didn't know if I should attach the file, so just fetch it from:
http://www.snoogans.co.uk/files/rndcstats.pl
Thanks,
Chris.
Martin McCormick wrote:
>
> This strategy seems to work very well. I have been
> experimenting with gathering and looking at named.stats in
> exactly this manner at our site. One can write a shell script or
> a little C program to handle this task. All you need to do is
> store whatever counter you are interested in as a numerical
> variable, take the current reading, and subtract your previous
> reading from the current one to get
> the number of successful queries or failures that occurred
> between readings.
>
> The numerical field shown in the header
>
> +++ Statistics Dump +++ (989269200)
>
> Is the unsigned long equivalent of the number of seconds
> since Midnight UTC January 1, 1970. If you wrote your data
> mining engine in C, you can use the standard time handling
> functions which can turn an unsigned long back in to a valid date
> by
>
> struct tm *timeptr;
>
> Which sets up the template. You then can isolate the
> digits in the numerical part of the header and use sscanf on what
> you got to convert that large number in to an unsigned long
> which I called "mark" so you can stuff it in to the localtime
> function.
>
> timeptr = localtime(&mark);
> printf("%s", asctime(timeptr));
>
> That will give you a string that looks much like what you
> see when you issue the date command in UNIX. The number I used
> as an example translates to May 7 of this year at 16:00 in the
> Central Daylight time zone. The rest of you will see whatever
> your local time was when the UTC clock had that same value.
>
> The only other thing you might want to do is be sure to
> build your script or C program so that it "knows" the difference
> between the first run and all others or you will see huge values
> for the first set of readings.
>
> The initialization of all the counters and the rendering
> of a human-readable date from the time stamp are the only
> thought-provoking parts of the project. My thanks to those who
> were involved in development for making it relatively easy to get
> and use this information.
>
> Martin McCormick WB5AGZ Stillwater, OK
> OSU Center for Computing and Information Services Data Communications Group
>
> Andreas Gustafsson writes:
> >While BIND 9 may not have all the bells and whistles of BIND 8 in the
> >statistics department, it does at least have "rndc stats". You could
> >run "rndc stats" at regular intervals and look at how much the query
> >counts in named.stats have increased each time.
More information about the bind-users
mailing list