GCP’s Standard Tier networking performance

If you take a hard look, chances are that most of your networked data is not homogeneous in terms of priority. If you’ve got some async content that’s lower priority and doesn’t really need 2TB/s xfer speeds, then it doesn’t really make sense to pay for a 2TB connection in order to transfer that data. This is where GCP’s new Standard tier networking comes in; it offers lower throughput and higher latency than the Premium tier.

Why in the world would you want a lower performing network?

Simple: lower cost.

If you’ve followed my work over the past decade or so, you know I’m a big fan of using the right tool for the right job, especially when it comes to cost & performance. As such, having the ability look at your data, and adjust what type of network experience it has (and what that costs you), is really cool idea and applicable for all sorts of situations.

But, before we get too excited, let’s answer a few questions : Why is the Standard Tier different than the Premium tier, and what’s the performance difference we’re looking at?

Too busy to read? Check out the TL;DR video above!

What _is_ the standard tier?

To describe this, let’s first start with how the premium tier works. In a nutshell, the Premium tier achieves improved networking performance by reducing the duration of travel on the public internet; packets enter (and leave) Google’s network as close to the user as possible and then travel on Google’s backbone before getting to the VM.

The Standard tier, on the other hand, allows packets to enter Google’s network as close to the VM as possible, spending more time traveling on the public internet.

With this in mind, the difference between the standard and premium tiers become very clear.

Premium tier packets spend more time on Google’s network, and thus perform better (but cost more).

Standard tier packets spend less time on Google’s network, and thus, perform worse (but cost less!)

As a developer, this means you should be asking two questions : how big is the performance difference, and how big is the cost difference?

Testing the performance difference

As the physical distance between the client and VM increases the difference in performance between these two tiers become amazingly apparent, as such, to test out performance, let’s take a look at the best and worst performing scenarios.

Worst-case : across oceans

To test this, I set up two VMs in us-central1, and configured one of them for the Premium tier, and the other for the Standard tier. Then, from a non-GCP machine in Frankfurt, fetched a 100k image from each instance 500 times.

The graph shows that the Premium tier is about 41% faster, on average, than the standard tier for repeated fetches. And when doing a higher-capacity throughput test, we see about a 46% difference as well:

Best case — the same region

Obviously, fetching over the oceans is the worst case scenario for networking tests. So let’s figure out what the best case scenarios look like. Let’s move the client machine as close to us-central1 as we can, without actually entering the GCP network.

In this best case scenario, we can see the standard tier performs very close to the premium tier, although it’s a bit more unreliable (larger set of longer fetches).

Our throughputs look closer too, standard is only 8% lower in this test.

When should you use the Standard Tier?

So far, the majority of Cloud Performance Atlas content has focused directly on the things needed to do to improve performance of your GCP applications.

But when it comes to the Premium/Standard tiers, you should really be asking yourself “how much performance do I need and is it ok to trade that off for cost?

I’ll refer you to this handy diagram (supplied in the original blog post) to help figure that out:

Another knob to turn.

From the looks of my tests, the Standard Tier is pretty amazing. If I’m transferring data in the same geographic region, an 8% drop in performance would completely be worth it, given the improved ingress costs. Likewise, the worst-case performance difference sounds like a good trade off for non-critical data (For example, users submitting log information, or batch work data), especially at a reduced cost!

Repeated Disclaimer : As of the writing of this post (2/22/2018), GCP’s tiered network is still in alpha so lots of stuff is in flux, and will change (for example, pricing differences haven’t been announced yet). So keep an eye on the GCP Network service tiers page for more information.

Until then, I’m excited about the new network service tiers. It’s a great new option for individuals who want to find yet another sweet spot between performance and costs for their Cloud applications.