Threads

Sanjeev Gupta ghane0 at gmail.com
Wed Apr 7 06:26:48 UTC 2021


Hal, newbie question.

What use case on the internet would be saturating a Gb link with NTP?
Surely, before that, we should be recommending a second server closer to
the clients?

Assume a large University campus, with 30000 nodes (5k students, each with
a tablet and phone, etc).  Assume all nodes (including the IOT coffee
maker) run an NTP client.  With a poll of 100 secs (to make life easier),
that is 3000 pkts/s .

I have an ancient Pentium 4, from 2005 or earlier.  4GB RAM, 32-bit.  ntp
-n -c monlist says 67000 slots.  It is in the pool, since 2009 or so.  CPU
load is 1% on each core, except when I run updates, etc.

-- 
Sanjeev Gupta
+65 98551208     http://www.linkedin.com/in/ghane


On Wed, Apr 7, 2021 at 12:43 PM Hal Murray via devel <devel at ntpsec.org>
wrote:

>
> There are 4 places that might be the limiting factor.
>
>   1) The wire might be full
>   2) The Ethernet chip might not be able to process packets at full wire
> speed.
>   3) The kernel's input dispatcher thread might run out of CPU cycles.
>   4) The client threads might run out of CPU cycles.
>
> I don't have a good setup to demonstrate the Ethernet chip being the
> limiting
> factor.  I could probably make one by plugging in a junk card.  The
> gigabit
> chips that come on Dell motherboards are OK.  They can get close to full
> wire
> speed, close enough that I'm missing under 100 bits between packets.
>
> The other limits are reasonably easy to demo.
>
> I have a box with an Intel E5-1650v3.  It has 6 cores at 3.5 MHz.  With
> HyperThreading, that's 12 CPUs.
>
> My standard test setup is an echo server.  The kernel SoftIRQ thread gets
> one
> CPU.  The other half of that core is left idle.  There is an echo server
> thread on each of the other 10 CPUs.
>
> Measured NTP throughput:
> pkts/sec  uSec/pkt
>    426K      2.3    NTP (simple)  48 bytes
>    320K      3.1    NTP + AES     68 bytes
>     93K     10.7    NTP + NTS    232 bytes
>
> The wire limit for NTP+NTS (232 UDP bytes) is 407K packets per second.
> That's
> 2.5 uSec per packet.  With 10 CPUs, we have 25 uSec per packet.  We only
> need
> 11 so this processor chip should be able to keep up with a gigabit link
> running at full speed.
>
> Note that a workstation with 4 cores can probably keep up.  That leaves 6
> worker threads so we only get 15 uSec of CPU time for each packet, but
> that's
> still more than 11.  I don't know how much running both CPUs of a core
> will
> slow things down.  We'll have to wait and measure that.
>
>
> --
> These are my opinions.  I hate spam.
>
>
>
> _______________________________________________
> devel mailing list
> devel at ntpsec.org
> http://lists.ntpsec.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/devel/attachments/20210407/7b24669b/attachment.htm>


More information about the devel mailing list