Dumb ntpd server

Hal Murray hmurray at megapathdsl.net
Sun Nov 5 03:00:25 UTC 2017

>> Write a dumb NTP server in Go.  The idea is to move ntpd
>> to a different port number so the new code can answer
>> client requests.  This assumes that a server can get all the
>> info it needs from the kernel.  That may be bogus, but
>> I think it's worth a try.  We could write similar code in
>> c and compare performance.

> Don't we already *have* similar code in C, namely ntpd itself?  I guess I'm
> not grasping what you mean by "dumb". 

The main idea is to develop a high performance server.  That means a thread 
per CPU.  I'm happy working with lots of threads, but the current ntpd code 
is not setup to help with that.

My strawman dumb server would have none of the ntpd complexity.  If we can 
get everything from the kernel, it's only a page or two.  Then we can add 
crypto and the mrulist statistics.

> I don't think the Go/C performance difference will matter under *any*
> plausible scenario, not given what I've read about Go oerformance and
> reasonable inferences about how its internals work. 

Sounds good.  Measuring is half an excuse to make some simple tools to 
measure things so we can see where the cycles are going and get actual 
measurements on how many packets per second we can support.

Besides, Trust but verify.  This seems like a good test case.

These are my opinions.  I hate spam.

More information about the devel mailing list