"Client distribution" statistic - can you ELI5?

I feel like this is a dumb question, in part because Ask explained it previously in what seems like simple terms, but I am finding that I still don’t fully get it. To use a concrete example, from a server of mine in Korea which has a netspeed of 10 Mbps:

kr 441.88 ‱ 43.15 ‱ (10.24x)

To borrow a phrase from Reddit, can you Explain Like I’m 5 what this statistic actually means? (Except, explain it like I’m a 5-year-old who’s okay with permyriad as a unit of measure.)

My interpretation was that 441.88 ‱ of all pool DNS requests from Korea included my server’s IP in the response. I’m more confused by the second part. Is it saying that, of all servers in the Korea zone which have a 10Mbps net speed, mine was only included in 43.15‱ of DNS responses? I’m not quite sure what to do with that.

Or do I have it backwards? Because I have a moderately low netspeed, I am only getting 43.15 ‱ of traffic (if DNS were a perfect representation of traffic), but if there were no netspeed setting, I would be getting 441.88 ‱ of traffic? (And if so, is it fair to infer that, with a 10 Mbps network setting and a 10.24x factor shown, the average netspeed is just over 100 Mbps?)

Realistically this is not particularly important, but I’ve stared at the numbers long enough that I’m curious now. :slight_smile:

Hi

First up - I don’t have any answers for you but I too have sat and wondering exactly what the figures mean.

To add to the picture if I may I also have a server in Korea set to 100Mbps and my figures are

kr 709.99 ‱ 431.51 ‱ (1.65x)

My net speed is 10x your setting and my second number is 10x yours - interesting.
I too would like it ELI5 :slightly_smiling_face:

Thanks! I appreciate the data point.

Your second number is exactly 10x mine to match 10x the netspeed. (Assuming mine was 43.151 and just truncated.) But the first number is only about 2x mine. Interesting! This makes me even more curious.

First off, for the not-so-hip participants like me, what the heck is ELI5? I’ve tried to interpret it in the way i18n is a typing shortcut for internationalization, or l10n for localization, but I can’t think of 5 letters to follow ELI that would mean something like explain or elaborate.

It’s not a dumb question. I suspect understanding it easily takes being in @Ask’s head, understanding intricacies of geoDNS, intricacies which most of us are relatively oblivious about.

Let’s start with the explanation given:

The units are in permyriad (‱, 1/10000). "100" equals one percent of DNS queries from the specified country.

The countries are ordered by number of DNS queries from each country answered with the server’s IP address. The second number is the server’s permyriad of the overall "netspeed" for countries configured for the server.

Notice the difference between “queries from the specified country” and “for countries configured for the server”. That’s where I start to get fuzzy on the meaning.

My best guess is the “Global points” number listed first, before the countries breakdown, reflects the share of all pool DNS query answers including the server. It’s unclear as there’s no explanatory text on the page for that number.

In the by-country breakdown, my reading is the first permyriad number reflects the share of DNS responses to queries originating from the given country which include the server.

The second number for a country is a bit of a mystery to me, because I am unsure how to interpret “countries configured for the server”. My guess is it refers to pool country DNS zones the server is included in, as reflected in the “Zones:” near the top of the page. Reading the tea leaves, I suppose the system is adding the netspeed configuration values for all servers included in that country zone to get the divisor, and the server’s netspeed configuration is the dividend, with the quotient then being the second number expressed in permyriad for a country. In other words, the proportion of responses to queries of the country zone, e.g. *.kr.pool.ntp.org.

The last number, “(10.24x)” in your example, is clearly the ratio between the first and second numbers, but I’m not sure what to make of that ratio. If my understanding above is correct, it’s the ratio of responses including the server to queries from the given country to the responses including the server to queries for the given country zone. OK, but so what? What should I make of that ratio, or in other words, why is that ratio included?

Hopefully @Ask will chime in sometime. It can be a while between times he pokes his head up here, presumably because he’s busy with his day job and/or other pool responsibilities. In other words, be patient :wink:

ELI5 - My interpretation and as mentioned in the original post is “Explain it like I am 5” :man_shrugging: but I am old enough to remember the moon landings so not always up to date with the latest :slight_smile:

This would be the first time anyone ever told me I was hip. :wink:

ELI5 is “Explain Like I’m 5” (years old). Reddit has a community with that name asking about concepts that they need explained simply.

Ah-ha! I had read that text probably at least a dozen times and didn’t pick up on that distinction.

I think you’re right about this. (Not that I have any solid idea, but this sounds like an innately reasonable explanation and it jibes with the described text.)

In that case, I think I have a new potential understanding of this:

kr 441.88 ‱ 43.15 ‱ (10.24x)

  • 441.88 ‱ of DNS responses that GeoDNS says came from Korea got my IP
  • 43.15 ‱ of DNS responses for *.kr.pool.ntp.org got my IP

(I imagine the latter is maybe inclusive of things like the general Asia zone as well, and generic requests that get mapped to Korea.)

In that case, that 10.24x ratio is interesting, but I agree that I don’t quite know what it means. I wouldn’t expect that much of a difference?

Assuming my interpretation is correct, there are still fuzzy details questions such as you introduce with “I imagine”. I’ll ask @Ask:

Does the “queries from the specified country” number include only queries to the global zone, or does it also include queries to geographic subzones?

Does the “for countries configured for the server” number include only queries to the country zone, or also to the containing continent zone? (@n1zyy’s first implied question)

Does the “for countries configured for the server” number also count queries to the global zone from clients geolocated to the country zone? (@nizzy’s second)

It might make things clearer to underline or italicize “from” in “queries from the specified country”. Similarly, it might help comprehension to rephrase “for countries configured for the server” to “for queries to the specified country zone”.

Better descriptive text suggestions warmly welcomed.

My understanding: second number is the calculated proportion of netspeeds in a given zone. If a zone ZZ consists of a server of 512kbps and 3 servers of 3Gbps, the calculated proportion of the 512k server would be:

512k/(512k+3000000k*3)=0.0001706=1.706‱

However for unknown reason, the first number of actual showup rate of the 512k server differs, mostly above calculated value. Take the former kr servers for example:

10 Mbps: kr 441.88 ‱ 43.15 ‱ (10.24x)
100Mbps:kr 709.99 ‱ 431.51 ‱ (1.65x)

The 100Mbps one has 10x calculated value of 10Mbps server, but only shows up in <2x of actual DNS responses. Another example of my own 512k server in tw zone:

tw 274.72 ‱ 1.26 ‱ (217.98x)

Just to add another thought - my server, the 100Mbps server has been online for less than a week. Is the first number the proportion over a period of time?

This “explanation” gives a hint:

The units are in permyriad (‱, 1/10000). “100” equals one percent of DNS queries from the specified country.

The DNS for for instance ch.ntp.pool.org might round robin to my IP with a certain likelihood ratio. That for cn.ntp.pool.org with another and ntp.pool.org with another again.

(doing dig pool.ntp.org a couple of times shows different IPs each time)

The word “netspeed” is used but not explained. It normally (?) refers to the speed of the node, think speed.cloudflare.com but I’m totally unsure if it has that same meaning here.

I see for my server:

Global points 0.010‱
Top Countries
ch 1.170 ‱ 1.072 ‱ (1.09x)
cn 0.007 ‱
de 0.006 ‱
us 0.001 ‱
br 0.002 ‱

Which I interpret as following. In switzerland (ch) of all ch.pool.ntp.org requests my server gets hit 1 in 854.7 (1 / 0.001170) requests, from China, cn.pool.ntp.org (cn) 1 in every 142’857 (1 / 0.000007). World wide pool.ntp.org 1 in every 100’000. These numbers seem not proportional to the number of likely requests but do as in for instance Germany the pool is pretty large compared to Switzerland.

The management page showing all your servers has an explanation in the right sidebar:

“The net speed is used to balance the load between the pool servers. […]
This speed does not mean the wire speed of your server, it’s just a relative value to other servers.”

No, it does not, see the previous quote. Even when recognizing that the unit of the net speed is lacking the “per second” part to be a real speed, the naming is arguably a bit confusing.

No. Note the subtle point in the wording in the explanation below the client distribution table: It says “queries from the specified country”, not something like “queries for the country zone”.

The geodns servers try as best as they can to determine the country zone a client is coming from. If a client gets a response that includes your server’s IP address, then that is counted towards the number of queries from the client’s country zone. What the client asked is secondary.

E.g., if a client from the CN zone asked for ch.pool.ntp.org, and your server happens to have the CH zone assigned, and its IP address happens to be included in the response to the client from the CN zone, then that is counted towards your server’s number of queries from the CN zone.

This is a common misunderstanding: This is not some “world wide” pool, where servers from all over the world can get assigned to a client. Rather, the “unnamed” zones (i.e., without a region name in them) simply trigger the geodns servers to try to assign to the client a server from the same zone as the client. Or, if there are none, from the enclosing zone, e.g., continent zone if the country zone does not have any servers in it. In which case you’ll get servers from outside your country, but only from within your continent zone, not globally, i.e., other continent and their respective subordinate country zones.

I.e., the “global” is more for the client side, that the client does not need to know what individual country zone it is currently located in, and configure that “named” country zone to get local servers, and change the config when moving to another zone.

But rather, a client can be configured with a single name that is common globally, and that, ideally, will get it local servers regardless of where it is. Think, e.g., people traveling, or software or products intended for different markets not needing specific configuration depending on the country zone they are ultimately being deployed in, but being shipped with a zone that is valid “globally”.

The “global zone @” is pretty much devoid of clients. I.e., a server getting a request via the “@” zone is exceedingly rare. Most requests reach a server via country or continent zones, or because clients explicitly use a “named” zone. Incidentally, I am currently preparing a post to “demystify” the “@” zone.

The words “netspeed” and “net speed” are different (the first one is a made-up word in english). If they aim is to convey the same meaning use the same word, sorry.

That means, whilst in Switzerland requests for pool.ntp.org, ch.pool.ntp.org or cn.pool.ntp.org are count as request from Switzerland, if I understand you correctly. I assume, however that geoDNS for all will preferably produce an IP addresses for Swiss based servers? That would make sense, unless I happen to use the service in a country with only a few servers in the pool.

Kindof states that.

That seems to be indeed agree with what I wrote about pool.npt.org, ch.pool.ntp.org and cn.pool.ntp.org It also means that the prefix has in fact no effect. GeoDNS will ignore country specific hostsnames and use whatever country the client is in to determine an optimal server, right?

What is the target for your server? If it’s not specified (you have to request) to include China, then it will not be working much for China as it’s too far away. As such you get mostly EU. If you have it specified for China, it will get more China, but it is useful that far away?

It makes not much sense to put a server for China in Switzerland, as the time won’t be exact enough.
It makes more sense to put a server for China in Asia then Europe.

If China is not the target, people from China may use a VPN and not counted as China-clients.

I would think they are supposed to mean the same thing. In the past, I personally used “netspeed”, until I found that within the explanation quoted, it is written as “net speed”. I agree it would be nicer if one or the other were used more consistently. Not sure which one it should be, then. Perhaps “netspeed”, as at least for those in the know, it should be clearer then that this is the specific artificial concept in the context of this project by using a made-up word for it.

The Pool’s GitHub repository is open for change requests either way, though looking at other PRs and issues, it may take a while until Ask gets around to actually pulling anything in.

Yes, but note that responses for cn.pool.ntp.org will probably not have your server’s IP address in them if the server is located in Switzerland.

No, not for all. If you query for a specific geographic zone, either country or continent, then you will get servers from that zone, regardless of where you are (or none if there are no servers in the zone). If you configure ch.pool.ntp.org in your client, then go to China, you will still get clients from the CH zone. If you query gg.pool.ntp.org, you will get no servers at all right now, regardless of where you are.

If you omit the geographic reference, the geodns will try to allocate a local server to you, and if there are none in the country zone, it’ll pick some from the continent zone. So without geographic reference, you always will get something back. E.g., if you go to Guernsey and ask for pool.ntp.org, you’ll get servers from the Europe zone as the GG one doesn’t currently have any.

No, it does not. If you put a geographic reference in the name you query, you’ll get only servers from that zone (or none, if there are no servers in the specific geographic zone). If you omit a geographic reference in the name, then you will get servers from the zone you are in, or the enclosing one if yours doesn’t have servers in it.

No, using a geographic reference in the name disables the automatic zone detection and local server allocation, and the potential fallback from country to continent zone.

In Dutch they are different:

Netspeed = Networkspeed.
Net speed = Netto speed.

Maybe a suggestion, make it more like a dial…more or less speed then the numbering it has now.

Or better make it a dial but going from 0 (monitor) to 100 (ultra fast). Would raise less questions about how it (not) works :grin:

Feel free to open a dedicated topic where you can raise your proposal, collect feedback and other ideas, have a discussion, and when there seems consensus within the community, create and submit a PR with specific changes for Ask to consider eventually. If the proposal includes a change in the range of values of what essentially are weights, please also include a proposal as to how to transition from the current scale to the new one.

@ask, why? He can go a few posts up :rofl:

Because at its core, despite Ask’s strong role as benevolent dictator, this is a community project, not a wishing well. If you have ideas how to improve things, don’t just shoot off lofty requests to Ask or into the ether for things to magically happen, but make tangible proposals and contributions that can be worked with.

You name Ask this? You should be ashamed of yourself. He’s nothing of this sort.

Shame on you. :-1:

It’s not a nasty term. You probably know what dictator means, but “benevolent” is “an English adjective that means kind, helpful, and full of goodwill”.

Benevolent dictator for life - Wikipedia may also offer some background.