Tuning ntpd
Charly's Column – ntpd
![© Photo by Fabrizio Forte on Unsplash © Photo by Fabrizio Forte on Unsplash](/var/linux_magazin/storage/images/issues/2019/229/command-line-avr-microcontrollers/fabrizio-forte-p58lpouhrsi-unsplash.png/758046-1-eng-US/fabrizio-forte-p58LPOUhrSI-unsplash.png_medium.png)
© Photo by Fabrizio Forte on Unsplash
Charly Kühnast, sys admin columnist for 15 years, is searching for lost microseconds.
Time is the topic I'm focusing on right now. On the one hand, I am of course happy to be celebrating the 25th anniversary of Linux Magazine and the fact that I have been allowed to contribute this column for more than 15 years. On the other hand, I am currently working on configuring my time servers. In the last issue [1], I briefly touched on the topic when we looked at ntpviz
, the statistics visualization tool for the Network Time Protocol daemon (ntpd
).
How to tune the time server for maximum accuracy using quite simple means was the topic in the October 2017 issue [2]. (Is it really already two years ago? How time flies.) At the time, I picked up a high-precision pulse per second (PPS) signal from GPS satellites. This allowed me to line up ticks received locally or from remote time servers to achieve microsecond accuracy on my server. Apart from scientific applications, nobody really needs that, but it's cool, so it was done.
When I tackled this configuration back in 2017, it was still by a fairly circuitous route. Feeding the PPS signal to ntpd
required additional software, which I found on GitHub. It's easier today. The two daemons involved, gpsd
and ntpd
, work hand in hand on my Debian 10 – and without any extra software.
I only have to tell the GPS daemon in the /etc/default/gpsd
configuration file where to find the GPS hardware. In my case, it is connected to a USB port, so I need the following line:
DEVICES="/dev/ttyUSB0"
Also the ntpd
configuration file is quickly completed with Listing 1. Lines 1 to 4 probably already exist in the file. It is important that one of them ends with the prefer
keyword. Lines 6 and 7 include the GPS time signal, but only for statistics. The noselect
keyword prevents it from actually being included in the calculations, because it is not very accurate. Lines 9 to 11, on the other hand, provide accuracy and bridge the gap to the PPS signal, which announces the beginning of a new second with high precision.
Listing 1
/etc/ntp.conf
01 server 0.de.pool.ntp.org prefer 02 server 1.de.pool.ntp.org iburst 03 server 2.de.pool.ntp.org iburst 04 server 3.de.pool.ntp.org iburst 05 06 server 127.127.28.0 minpoll4 noselect 07 fudge 127.127.28.0 refid GPS 08 09 server 127.127.22.0 minpoll 4 maxpoll 4 10 fudge 127.127.22.0 flag3 1 refid PPS 11 tos mindist 0.2
A Little Crazy
This allows my time signal to fluctuate by only a few millionths of a second (Figure 1). By the way, the deflections in the right part of the graph were caused by me frivolously moving the GPS antenna on the window sill.
![](/var/linux_magazin/storage/images/issues/2019/229/command-line-avr-microcontrollers/figure-12/758392-1-eng-US/Figure-1_large.png)
Of course, my experiments did not go as smoothly as the story thus far suggests. In the first attempt, my time signal was no more accurate than before, whatever I did. After tearing my hair out for a couple of hours, it turned out that you can buy some GPS hardware that simply ignores the PPS signal. This realization cost me half an afternoon – it seemed to drag on endlessly if you ask me. On the other hand, time flies – but not always, apparently.
Infos
- "Charly's Column – ntpviz" by Charly Kühnast, Linux Magazine, issue 228, November 2019, p. 26
- "Charly's Column – Precision Timekeeping" by Charly Kühnast, Linux Magazine, issue 203, October 2017, http://www.linux-magazine.com/Issues/2017/203/Charly-s-Column-Precise-Timekeeping/(language)/eng-US
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
![Learn More](https://www.linux-magazine.com/var/linux_magazin/storage/images/media/linux-magazine-eng-us/images/misc/learn-more/834592-1-eng-US/Learn-More_medium.png)
News
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.