Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: RRD-Ping getting values on right interval

by CountZero (Bishop)
on Nov 30, 2011 at 09:14 UTC ( #940801=note: print w/ replies, xml ) Need Help??


in reply to RRD-Ping getting values on right interval

On the average you will get half a second "error" on each sleep and all other processes running will add a slight delay too. So that adds up in the end.

Rather than rely on sleep 45 you better sleep for 40 seconds and then start polling the internal clock and launch your pings on the dot of the next minute. You will get re-synchronised that way every time and your errors will be minimal.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James


Comment on Re: RRD-Ping getting values on right interval
Download Code
Re^2: RRD-Ping getting values on right interval
by hello_world (Acolyte) on Nov 30, 2011 at 10:01 UTC
    Just wondering why this half a second 'error' would happen on each sleep? Is this something normal?
      If you look at the ping report, the RT times (as printed) total 25 miliseconds; at the moment, I'm looking at RTs on the order of 90 milisecs. Either adds up to half a sec pretty fast -- just 6 (+/-) iterations in my case; 20 in yours.

      BTW, your script requires mods/workaround beyond my ken for Windoze/AS 5.12...:
      Your vendor has not defined POSIX macro WUNTRACED, used at F:\_Perl_\pl_test\940785.pl
      at my equivalent of your line 45.

        You can substitute that with normal waitpid.That should work i guess.I didnt quite get how did you arrive at the value of '20'. Thanks
      sleep has a resolution of one second. It means it can trigger anywhere in that one second and therefore on the average it will be 0.5 seconds "off" the exact mark.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://940801]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2014-10-20 10:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (75 votes), past polls