-
-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Single-threaded time synchronization performance regression #1778
Comments
Well, I got the answer - the commit has been made after the v1.4.0 release.
Sorry for the noise ! |
Hummm, I notice now that |
Hmm that would be an interesting change in behavior if that were the case. I would not expect much of any difference with the change over to a single thread, I'm guessing you previously got to a stratum 2? I believe our stratum should be set to one higher than the source for which we have the lowest uncertainty (i.e. the source with the most influence on our clock). It could also very well be that the daemon determined that one of the sources from pool.ntp.org (assuming the configuration you've shown above, that pool has mostly stratum 2 and 3 servers) appears more reliable to us than either time.nl or netnod (especially if those sources are a little further away from you that could very well be possible). |
I confirm - with v1.4.0 and previous (1.3.0) I was constantly at stratum 2, within less than 2min from cold boot. |
If it helps, I can play with different configurations and collect logs. I would need some guidance, though ... |
I don't think we really have enough logging to get to the bottom of this easily. I think we will need to do a little debugging to see what is going on, but it will probably take a little while before either me or David has time to do that unfortunately. Before releasing this we were planning on doing some synchronization performance testing ourselves as well. For now I would recommend to go back to 1.4.0 unfortunately. |
If you need feedback and some light testing, count me in ! |
I won't be able to put much time into this yet, but to get you started on doing some useful tests, could you do two runs with debug logging, each for about 24 hours or so, once with a self-built version from the 1.4.0 commit and once with the git version where you are seeing the problems, but with fixed NTP pool servers (so replacing the pool source with 4 pool servers manually) so as to reduce potential impact of different servers from the pool? Should the indicated behaviour still continue, then if you could send me the logs of both those runs, along with ntp-ctl status output at a few points throughout the running of either test, that would be really helpfull. Note that the algorithm we use is not setup to prioritize stratum, so the effect you are seeing isn't necessarily unexpected, although it would be strange if, with identical sets of servers, behaviour changes from just the tokio single threading commit. In the way we implement the synchronization, we prioritize based on the quality of the sources as we measure them and how they advertise that to us (through fields other than stratum). Hence, running with stratum larger than 2 isn't necessarily an indication that synchronization quality is worse, just that it thought that a different server is better, and that server happened to have higher stratum. |
Sure; would you, please, provide the exact contents of the config file I should use ? |
Sure, I would need a bit of information from your side, could you provide me with the output of |
I used dnslookup, if that's OK ..
|
The following should be a good configuration for the test:
|
Hello,
I built from source and installed locally ntpd-rs; with the release of version 1.4.0 I was expecting that the number of threads would be reduced to 1 (I'm using it as an NTP client).
However, there are still as many threads as there are cores:
My config file looks like this:
What am I missing?
Is there something wrong / missing in my configuration or the change has not yet been integrated in the released version ?
The text was updated successfully, but these errors were encountered: