Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am thinking (constantly) how to make my server be synchronised better than it is. I run some cheap app which syncs me with some stratum 2 server on the colo and drift is about 1-2 ms per 10 sec (when the box is not too busy). I want better precision and I want my own clock. But whatever you can buy from 'old style' companies costs more than I ever will afford.

However I just got a thought - is it possible to hook to a hi-tech graphic or sound card which should use some internal precision clocks?

any ideas? thoughts? advice?

EDIT: colo doesnt let me use GPS. they built GPS nntp server out of 30 bucks DIY kit, plugged it to a Linux machine and selling it for $2000 a month. yep.

EDIT EDIT. Guys I really appreciate all the advices. But I am looking for an internal card which doesnt need GPS and it has stable clock which doesnt drift more than say 1ns per 60 sec. I am not looking to buy an atomic clock and I cannot use Stratum/NTP solution (because I already am using it and I want better but cheap)..

EDIT EDIT EDIT. apparently there are clocks which can produce 5ns/sec drift with 100ns resolution which is much better than a Stratum 2 other the internet. I also surprised nobody mentioned IEEE 1588.

share|improve this question
2  
Do you really really need sub-millisecond accuracy? –  Zypher Jan 27 '12 at 22:47
    
Yes I do. but that depends on the cost. If I can replace 1-2ms accuracy with 0.5ms accuracy for say $150 I would do it now. If you say you need to invest 1500 and then pay another 100 every month to keep the clock box in the rack then I'd say no I dont.... –  Boppity Bop Jan 27 '12 at 23:08
2  
FWIW, the Soekris net4501 keeps time reliably, as demonstrated by PHK. –  James O'Gorman Jan 27 '12 at 23:12
4  
If you cannot get what you need from the colo, maybe it is time to start looking for alternatives. –  Zoredache Jan 27 '12 at 23:32
2  
I hope you mean NTP, not NNTP. Doing time sync over NNTP would be, I dare say, a sign of insanity. –  derobert Jan 30 '12 at 19:44

4 Answers 4

up vote 6 down vote accepted

To the best of my knowledge, the timing in GPUs comes from the system; they don't have their own internal highly-stable clocks. There are products out there (affordable, last I checked) that'll pull high quality time from a couple of sources. Some pull it directly from GPS, though it does require the ability to

  1. Get an antenna where a GPS signal can be reached.
  2. Get a cable from the antenna location to your network.

They act as Stratum 1 NTP sources.

A DIY method using off the shelf parts: http://time.qnan.org/

Those tend to be the most cost-effective solutions, since they don't require maintaining a highly stable oscillator.

Second to that are devices with highly stable oscillators, but they tend to be much more expensive.

share|improve this answer
    
yes that was my first choice but look at my edit. i dont have gps signal –  Boppity Bop Jan 27 '12 at 23:12
3  
@Bobb Everything I know of that doesn't use GPS is well beyond your stated cost parameters. –  sysadmin1138 Jan 27 '12 at 23:21

A dedicated timing machine, even if low capability, can keep very, very accurate time. You just need to lock the NTP software in memory and give it the highest possible priority. It will take it a day or two to stabilize, in temperature, synchronization, and in measuring its own rate. But it's not difficult to get millisecond accuracy in a stratum 3.

The tricks are:

1) The machine should be dedicated to time keeping. No bursts of load from other sources. (You can also use it for very-low-impact services like as a backup name server.)

2) The NTP process should run at elevated priority and locked into memory.

3) Configure a few stratum 2 servers, ideally four. There are plenty of such public servers. Find the ones with the quickest NTP response time. (You can use 'ntpdate -q' to test, lower delays are better.)

4) It will take a day or so to fully stabilize.

5) Use an OS that has good NTP timekeeping integration with the kernel. Linux and FreeBSD are fine.

6) You can use a very cheap, low-end computer, even a $60 wireless router that can run Linux.

share|improve this answer

If you need better accuracy then buy a proper time clock. Messing around with clever ideas like the one you have there might be a lot of fun but if the time absolutely positively has to be accurate then I don't think its a good idea. What do you think your graphics card would sync to itself, if you tried something like that? Are you certain that any variance in the motherboard clock speed wouldn't affect the GPU?

We have fairly serious requirements for time sync so we ended up buying our own rack-mounted time server from galleon, which comes with its own GPS aerial and we've been very happy with the results and I know they also have systems that plug into the back of a pre-existing server, as will any competitors they have, I'm sure.

share|improve this answer
    
Rob if I had access to GPS I'd buy german card for 100 quid with 100ns precision.... why would I want to spend 10-15K to a galleon server? –  Boppity Bop Jan 27 '12 at 23:18
1  
I'm not suggesting you buy one particular product or another, I'm suggesting that if you need a certain level of precision, you need something that can guarantee that (thinking you have a certain level of accuracy and being wrong is much worse than knowing you don't have that level of accuracy), and I use galleon as an example of how my organisation solved that problem. –  RobM Jan 27 '12 at 23:23

The drift is likely also due to the clock on your PC - they still aren't all that accurate. Try downloading the windows version of ntpd, configure it up, set your clock with ntpdate, and tell ntpd to run. Over time, it will figure our the rate of drift of your system's clock and over time yield accurate system time for programs. If you're synchronizing a bunch of computers, they should all be synced to the same time source, or preferably a local master which is itself synced to a Stratum 2 server.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.