Published: 16 October 2026
Most latency tables on hosting sites are estimates. This one is not. On 12 October 2026 we pinged every one of our seven VPS locations from every other one, 21 routes in both directions, and wrote down what came back. If you are deciding where to put a server, where to put its backup, or whether two cities are close enough for database replication, these are real numbers from real servers.
The table
Average round trip in milliseconds, 20 packets per route, no packet loss on any route:
| Frankfurt | Amsterdam | Vienna | Warsaw | Bucharest | Sofia | Ashburn | |
|---|---|---|---|---|---|---|---|
| Frankfurt | 6.2 | 11.4 | 16.3 | 24.6 | 21.9 | 96.6 | |
| Amsterdam | 6.2 | 17.4 | 22.4 | 29.7 | 28.0 | 102.6 | |
| Vienna | 11.4 | 17.4 | 11.9 | 17.8 | 15.6 | 106.5 | |
| Warsaw | 16.3 | 22.4 | 11.9 | 29.6 | 27.3 | 114.5 | |
| Bucharest | 24.6 | 29.7 | 17.8 | 29.6 | 7.5 | 137.6 | |
| Sofia | 21.9 | 28.0 | 15.6 | 27.3 | 7.5 | 117.1 | |
| Ashburn | 96.6 | 102.6 | 106.5 | 114.5 | 137.6 | 117.1 |
How we measured
From each VPS node we sent 20 ICMP echo requests, 0.2 seconds apart, to the address of every other node and recorded the average. Every route was measured from both ends, and the two directions agreed to within 0.4 ms, so the table shows one figure per pair. The test ran at about 16:27 UTC on a Monday afternoon.
Two things to keep in mind. These are round trips between servers on our network, so they leave out the last stretch to your users: their home broadband or mobile network adds its own few milliseconds or more. And a single afternoon is a snapshot. Routes change from time to time, though the spread within each run was tiny, mostly under 0.1 ms.
What the numbers say
Frankfurt and Amsterdam are practically one region
At 6.2 ms, Frankfurt and Amsterdam are the closest pair we run. That is near enough for synchronous database replication, a shared storage cluster or an active pair behind one address, while keeping the two halves in different countries. Our Frankfurt and Amsterdam guides cover each city on its own.
Vienna is the most central location we have
Look at the worst figure in each row, ignoring Ashburn. From Vienna, the furthest European location is Bucharest at 17.8 ms, and the average to the other five is 14.8 ms. Frankfurt averages 16.1 ms with a worst case of 24.6 ms, and every other city has a worst case near 30 ms. If one server has to reach users spread from the Netherlands to Bulgaria, Vienna is the fairest single choice among our locations. If your audience is mostly in the UK, France or the Benelux, Amsterdam and Frankfurt still win, because those countries sit at their end of the map.
Bucharest and Sofia are two rooms in one building
Bucharest and Sofia are 7.5 ms apart, in two countries with two separate facilities. For anything aimed at South East Europe, run the primary in one and the standby in the other, and replication will barely notice the distance. The Sofia launch post has more on the pair.
Distance is not the whole story
Light in optical fibre covers about 200 km per millisecond, so every 100 km of straight line costs at least 1 ms of round trip. Real cables never run straight, and traffic passes through routers and exchange points. Here is how far some routes are from that floor:
| Route | Straight line | Physical floor | Measured | Times the floor |
|---|---|---|---|---|
| Frankfurt to Amsterdam | 363 km | 3.6 ms | 6.2 ms | 1.7 |
| Frankfurt to Sofia | 1,389 km | 13.9 ms | 21.9 ms | 1.6 |
| Vienna to Warsaw | 556 km | 5.6 ms | 11.9 ms | 2.1 |
| Warsaw to Bucharest | 945 km | 9.5 ms | 29.6 ms | 3.1 |
| Frankfurt to Ashburn | 6,549 km | 65.5 ms | 96.6 ms | 1.5 |
Most routes land at 1.5 to 2 times the floor, which is normal. Warsaw to Bucharest is the outlier: the two cities are half as far apart as Amsterdam and Bucharest, yet the round trip is about the same, 29.6 against 29.7 ms. It is also almost exactly Warsaw to Vienna plus Vienna to Bucharest. Paths follow fibre and interconnection, not the map, which is why measuring beats guessing.
Frankfurt is our shortest bridge to the United States
Amsterdam is slightly closer to Ashburn on a globe, but Frankfurt has the faster path, 96.6 ms against 102.6 ms. If you run a transatlantic pair, put the European half in Frankfurt.
What a round trip costs your application
A millisecond figure only matters once you know how many times your application waits for one. Some common cases:
| What happens | Round trips | At 6.2 ms | At 17.4 ms | At 29.7 ms |
|---|---|---|---|---|
| New HTTPS visitor, before the first byte (TCP, TLS 1.3, request) | 3 | 19 ms | 52 ms | 89 ms |
| Page that runs 20 database queries one after another, app and database in different cities | 20 | 124 ms | 348 ms | 594 ms |
| Synchronous replication, one commit at a time | 1 per commit | about 160 per second | about 57 per second | about 34 per second |
The lesson in the middle row is the important one: keep an application and its database in the same city, and use the second city for a standby. A standby is where these numbers decide things, and our guide to a warm standby in another country walks through the setup.
Good pairs for a primary and a standby
| Pair | Round trip | Good for |
|---|---|---|
| Frankfurt and Amsterdam | 6.2 ms | Synchronous replication, active pairs |
| Bucharest and Sofia | 7.5 ms | South East Europe, synchronous replication |
| Frankfurt and Vienna | 11.4 ms | Central Europe, Germany plus Austria |
| Vienna and Warsaw | 11.9 ms | Poland and Central Europe |
| Frankfurt and Ashburn | 96.6 ms | Transatlantic, asynchronous only |
For a dedicated server in Poland, our Warsaw dedicated server guide pairs it with Vienna for exactly this reason.
Measure it from where your users are
Our table covers the network between our servers. What you really want to know is the round trip from your users. The cheapest way to find out is to deploy an hourly VPS in each candidate city, ping it from your office, your home and a few customers, and delete it. Two of our smallest VPS for one hour cost less than two cents in total.
- Deploy a VPS I KVM in two locations that are in stock.
- From each place you care about, run
ping -c 20against both addresses, ormtr -r -c 20to see the path. - Compare averages, not single packets, and repeat at a busy time of day.
- Delete both servers. Billing stops with them.
For cities where we offer dedicated servers but no VPS, such as Paris, Madrid and Milan, each location page lists typical round trips to nearby cities, and our guide to picking a location by latency explains how to weigh them.