{"id":110074,"date":"2023-10-24T09:05:00","date_gmt":"2023-10-24T16:05:00","guid":{"rendered":"https:\/\/www.backblaze.com\/blog\/?p=110074"},"modified":"2025-12-12T14:00:38","modified_gmt":"2025-12-12T22:00:38","slug":"cloud-storage-performance-the-metrics-that-matter","status":"publish","type":"post","link":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/","title":{"rendered":"Cloud Storage Performance: The Metrics That Matter"},"content":{"rendered":"\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-110075\" src=\"\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance-1024x583.png\" alt=\"A decorative image showing a cloud in the foreground and various mocked up graphs in the background. \" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 15px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<p class=\"has-drop-cap\">Availability, time to first byte, throughput, durability\u2014there are plenty of ways to measure \u201cperformance\u201d when it comes to cloud storage. But, which measure is best and how should performance factor in when you\u2019re choosing a cloud storage provider? Other than <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/security\" target=\"_blank\" rel=\"noreferrer noopener\">security<\/a> and <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">cost<\/a>, performance is arguably the most important decision criteria, but it\u2019s also the hardest dimension to clarify. It can be highly variable and depends on your own infrastructure, your workload, and all the network connections between your infrastructure and the cloud provider as well.<\/p>\r\n\r\n\r\n\r\n<p>Today, I\u2019m walking through how to think strategically about cloud storage performance, including which metrics matter and which may not be as important for you.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">First, What\u2019s Your Use Case?<\/h2>\r\n\r\n\r\n\r\n<p>The first thing to keep in mind is how you\u2019re going to be using cloud storage. After all, performance requirements will vary from one use case to another. For instance, you may need greater performance in terms of latency if you\u2019re using cloud storage to serve up software as a service (SaaS) content; however, if you\u2019re using cloud storage to back up and archive data, throughput is probably more important for your purposes.<\/p>\r\n\r\n\r\n\r\n<p>For something like application storage, you should also have other tools in your toolbox even when you are using hot, fast, public cloud storage, like the ability to cache content on edge servers, closer to end users, with a <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/solutions\/cdn\" target=\"_blank\" rel=\"noreferrer noopener\">content delivery network (CDN)<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>Ultimately, you need to decide which cloud storage metrics are the most important to your organization. Performance is important, certainly, but security or cost may be weighted more heavily in your decision matrix.<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" class=\"wp-image-110076\" src=\"\/wp-content\/uploads\/2023\/10\/Cloud-Performance_1_Decision-Matrix.png\" alt=\"A decorative image showing several icons representing different types of files on a grid over a cloud. \" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">What Is Performant Cloud Storage?<\/h2>\r\n\r\n\r\n\r\n<p>Performance can be described using a number of different criteria, including:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Latency<\/li>\r\n\r\n\r\n\r\n<li>Throughput<\/li>\r\n\r\n\r\n\r\n<li>Availability<\/li>\r\n\r\n\r\n\r\n<li>Durability<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>I\u2019ll define each of these and talk a bit about what each means when you\u2019re evaluating a given cloud storage provider and how they may affect upload and download speeds.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Latency<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Latency is defined as the time between a client request and a server response. It quantifies the time it takes data to transfer across a network.\u00a0\u00a0<\/li>\r\n\r\n\r\n\r\n<li>Latency is primarily influenced by physical distance\u2014the farther away the client is from the server, the longer it takes to complete the request.\u00a0<\/li>\r\n\r\n\r\n\r\n<li>If you\u2019re serving content to many geographically dispersed clients, you can use a CDN to reduce the latency they experience.\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Latency can be influenced by network congestion, security protocols on a network, or network infrastructure, but the primary cause is generally distance, as we noted above.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>Downstream latency is typically measured using <a href=\"\/blog\/cloud-performance-and-when-it-matters\/\">time to first byte<\/a> (TTFB). In the context of surfing the web, TTFB is the time between a page request and when the browser receives the first byte of information from the server. In other words, TTFB is measured by how long it takes between the start of the request and the start of the response, including <a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain_Name_System\" target=\"_blank\" rel=\"noreferrer noopener\">DNS<\/a> lookup and establishing the connection using a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Transmission_Control_Protocol\" target=\"_blank\" rel=\"noreferrer noopener\">TCP<\/a> handshake and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Transmission_Control_Protocol\" target=\"_blank\" rel=\"noreferrer noopener\">TLS<\/a> handshake if you\u2019ve made the request over <a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTPS\" target=\"_blank\" rel=\"noreferrer noopener\">HTTPS<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>Let\u2019s say you\u2019re uploading data from California to a cloud storage data center in Sacramento. In that case, you\u2019ll experience lower latency than if your business data is stored in, say, Ohio and has to make the cross-country trip. However, making the \u201cright\u201d decision about where to store your data isn\u2019t quite as simple as that, and the complexity goes back to your use case. If you\u2019re using cloud storage for off-site backup, you may want your data to be stored farther away from your organization to protect against natural disasters. In this case, performance is likely secondary to location\u2014you only need fast enough performance to meet your backup schedule.\u00a0<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Using a CDN to Improve Latency<\/h4>\r\n\r\n\r\n\r\n<p>If you\u2019re using cloud storage to store active data, you can <a href=\"\/blog\/optimizing-website-performance-with-a-cdn\/\" target=\"_blank\" rel=\"noreferrer noopener\">speed up performance by using a CDN.<\/a> A CDN helps speed content delivery by caching content at the edge, meaning faster load times and reduced latency.\u00a0<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" class=\"wp-image-110077\" src=\"\/wp-content\/uploads\/2023\/10\/Cloud-Performance_2_Global-Networks-1024x681.jpg\" alt=\"\" \/>\r\n<figcaption class=\"wp-element-caption\">Edge networks create \u201csatellite servers\u201d that are separate from your central data server, and CDNs leverage these to chart the fastest data delivery path to end users.\u00a0<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Throughput<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Throughput is a measure of the amount of data passing through a system at a given time.<\/li>\r\n\r\n\r\n\r\n<li>If you have spare bandwidth, you can use multi-threading to improve throughput.\u00a0<\/li>\r\n\r\n\r\n\r\n<li>Cloud storage providers\u2019 architecture influences throughput, as do their policies around slowdowns (i.e. throttling).<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Throughput is often confused with <a href=\"https:\/\/www.comparitech.com\/net-admin\/throughput-vs-bandwidth\/\" target=\"_blank\" rel=\"noreferrer noopener\">bandwidth<\/a>. The two concepts are closely related, but different.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>To explain them, it\u2019s helpful to use a metaphor: Imagine a swimming pool. The amount of water in it is your file size. When you want to drain the pool, you need a pipe. Bandwidth is the size of the pipe, and throughput is the rate at which water moves through the pipe successfully. So, bandwidth affects your ultimate throughput. Throughput is also influenced by processing power, packet loss, and network topology, but bandwidth is the main factor.\u00a0<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" class=\"wp-image-110078\" src=\"\/wp-content\/uploads\/2023\/10\/Cloud-Performance_3_Bandwidth-and-Throughput.png\" alt=\"A diagram showing the pipe metaphor that describes the differences between bandwidth and throughput. \" \/>\r\n<figcaption class=\"wp-element-caption\"><a href=\"https:\/\/javachallengers.com\/latency-and-throughput\/\" target=\"_blank\" rel=\"noreferrer noopener\">Source.<\/a><\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Using Multi-Threading to Improve Throughput<\/h4>\r\n\r\n\r\n\r\n<p>Assuming you have some bandwidth to spare, one of the best ways to improve throughput is to enable <a href=\"\/blog\/increasing-thread-count-useful-in-sheets-and-cloud-storage-speed\/\" target=\"_blank\" rel=\"noreferrer noopener\">multi-threading<\/a>. Threads are units of execution within processes. When you transmit files using a program across a network, they are being communicated by threads. Using more than one thread (multi-threading) to transmit files is, not surprisingly, better and faster than using just one (although a greater number of threads will require more processing power and memory). To return to our water pipe analogy, multi-threading is like having multiple water pumps (threads) running to that same pipe. Maybe with one pump, you can only fill 10% of your pipe. But you can keep adding pumps until you reach pipe capacity.<\/p>\r\n\r\n\r\n\r\n<p>When you\u2019re using cloud storage with an integration like backup software or a network attached storage (NAS) device, the multi-threading setting is typically found in the integration\u2019s settings. Many backup tools, like <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/integrations\/veeam\">Veeam<\/a>, are already set to multi-thread by default. Veeam automatically makes adjustments based on details like the number of individual backup jobs, or you can configure the number of threads manually. Other integrations, like <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/integrations\/veeam\" target=\"_blank\" rel=\"noreferrer noopener\">Synology\u2019s Cloud Sync<\/a>, also give you granular control over threading so you can dial in your performance.\u00a0\u00a0<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" class=\"wp-image-110079\" src=\"\/wp-content\/uploads\/2023\/10\/Cloud-Performance_4_Multi-threading.png\" alt=\"A diagram showing single vs. multi-threaded processes.\" \/>\r\n<figcaption class=\"wp-element-caption\">Still confused about threads? Learn more in <a href=\"\/blog\/whats-the-diff-programs-processes-and-threads\/\" target=\"_blank\" rel=\"noreferrer noopener\">our deep dive<\/a>, including what\u2019s going on in this diagram.<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<p>That said, the gains from increasing the number of threads are limited by the available bandwidth, processing power, and memory. Finding the right setting can involve some trial and error, but the improvements can be substantial (as we discovered when we compared <a href=\"\/blog\/python-gil-vs-nogil-boost-i-o-performance-10x-with-one-line-change\/\" target=\"_blank\" rel=\"noreferrer noopener\">download speeds<\/a> on different Python versions using single vs. multi-threading).<\/p>\r\n\r\n\r\n\r\n<div class=\"abstract\" style=\"line-height: 1.8; margin: 24px 12px; padding: 24px 12px 10px 12px;\">\r\n<h4>What About Throttling?<\/h4>\r\n<p>One question you\u2019ll absolutely want to ask when you\u2019re choosing a cloud storage provider is whether they throttle traffic. That means they deliberately slow down your connection for various reasons. Shameless plug here: Backblaze does not throttle, so customers are able to take advantage of all their bandwidth while uploading to B2 Cloud Storage. Many other public cloud services do throttle, although they certainly may not make it widely known, so be sure to ask the question upfront when engaging with a storage provider.<\/p>\r\n<\/div>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">Upload Speed and Download Speed<\/h4>\r\n\r\n\r\n\r\n<p>Your ultimate upload and download speeds will be affected by throughput and latency. Again, it\u2019s important to consider your use case when determining which performance measure is most important for you. Latency is important to application storage use cases where things like how fast a website loads can make or break a potential SaaS customer. With latency being primarily influenced by distance, it can be further optimized with the help of a CDN. Throughput is often the measurement that\u2019s more important to backup and archive customers because it is indicative of the upload and download speeds an end user will experience, <em>and<\/em> it can be influenced by cloud storage provider practices, like throttling.\u00a0\u00a0\u00a0<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Availability<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Availability is the percentage of time a cloud service or a resource is functioning correctly.<\/li>\r\n\r\n\r\n\r\n<li>Make sure the availability listed in the cloud provider&#8217;s service level agreement (SLA) matches your needs.\u00a0<\/li>\r\n\r\n\r\n\r\n<li>Keep in mind the difference between hot and cold storage\u2014cold storage services like Amazon Glacier offer slower retrieval and response times.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Also called uptime, this metric measures the percentage of time that a cloud service or resource is available and functioning correctly. It&#8217;s usually expressed as a percentage, with 99.9% (three nines) or 99.99% (four nines) availability being common targets for critical services. Availability is often backed by <a href=\"https:\/\/www.backblaze.com\/company\/policy\/sla\" target=\"_blank\" rel=\"noreferrer noopener\">SLAs<\/a> that define the uptime customers can expect and what happens if availability falls below that metric.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>You\u2019ll also want to consider availability if you\u2019re considering whether you want to store in <a href=\"\/blog\/whats-the-diff-hot-and-cold-data-storage\/\" target=\"_blank\" rel=\"noreferrer noopener\">cold storage versus hot storage<\/a>. Cold storage is lower performing by design. It prioritizes durability and cost-effectiveness over availability. Services like Amazon Glacier and Google Coldline take this approach, offering slower retrieval and response times than their hot storage counterparts. While cost savings is typically a big factor when it comes to considering cold storage, keep in mind that if you do need to retrieve your data, it will take much longer (potentially days instead of seconds), and speeding that up at all is still going to cost you. You may end up paying more to get your data back faster, and you should also be aware of the exorbitant egress fees and minimum storage duration requirements for cold storage\u2014unexpected costs that can easily add up.\u00a0<\/p>\r\n\r\n\r\n\n<table id=\"tablepress-48\" class=\"tablepress tablepress-id-48\">\n<thead>\n<tr class=\"row-1\">\n\t<td class=\"column-1\"><\/td><th class=\"column-2\">Cold<\/th><th class=\"column-3\">Hot<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\"><strong>Access Speed<\/strong><\/td><td class=\"column-2\">Slow<\/td><td class=\"column-3\">Fast<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\"><strong>Access Frequency<\/strong> <\/td><td class=\"column-2\">Seldom or Never<\/td><td class=\"column-3\">Frequent<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\"><strong>Data Volume<\/strong><\/td><td class=\"column-2\">Low<\/td><td class=\"column-3\">High<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\"><strong>Storage Media<\/strong><\/td><td class=\"column-2\">Slower drives, LTO, offline<\/td><td class=\"column-3\">Faster drives, durable drives, SSDs<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\"><strong>Cost<\/strong><\/td><td class=\"column-2\">Lower<\/td><td class=\"column-3\">Higher<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-48 from cache -->\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Durability<\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Durability is the ability of a storage system to consistently preserve data.<\/li>\r\n\r\n\r\n\r\n<li>Durability is measured in \u201cnines\u201d or the probability that your data is retrievable after one year of storage.\u00a0<\/li>\r\n\r\n\r\n\r\n<li>We designed the Backblaze B2 Storage Cloud for 11 nines of durability using erasure coding.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Data durability refers to the ability of a data storage system to reliably and consistently preserve data over time, even in the face of hardware failures, errors, or unforeseen issues. It is a measure of data&#8217;s long-term resilience and permanence. Highly durable data storage systems ensure that data remains intact and accessible, meeting reliability and availability expectations, making it a fundamental consideration for critical applications and data management.<\/p>\r\n\r\n\r\n\r\n<p>We usually measure durability or, more precisely <em>annual<\/em> durability, in \u201cnines\u201d, referring to the number of nines in the probability (expressed as a percentage) that your data is retrievable after one year of storage. We know from our work on <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/resources\/hard-drive-test-data\" target=\"_blank\" rel=\"noreferrer noopener\">Drive Stats<\/a> that an annual failure rate of 1% is typical for a hard drive. So, if you were to store your data on a single drive, its durability, the probability that it would <em>not<\/em> fail, would be 99%, or two nines.<\/p>\r\n\r\n\r\n\r\n<p>The very simplest way of improving durability is to simply replicate data across multiple drives. If a file is lost, you still have the remaining copies. It\u2019s also simple to calculate the durability with this approach. If you write each file to two drives, you lose data only if <em>both <\/em>drives fail. We calculate the probability of both drives failing by multiplying the probabilities of either drive failing, 0.01 x 0.01 = 0.0001, giving a durability of 99.99%, or four nines. While simple, this approach is costly\u2014it incurs a 100% overhead in the amount of storage required to deliver four nines of durability.<\/p>\r\n\r\n\r\n\r\n<p>Erasure coding is a more sophisticated technique, improving durability with much less overhead than simple replication. An erasure code takes a \u201cmessage,\u201d such as a data file, and makes a longer message in a way that the original can be reconstructed from the longer message even if parts of the longer message have been lost.\u00a0<\/p>\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" class=\"wp-image-110080\" src=\"\/wp-content\/uploads\/2023\/10\/Cloud-Performance_5_Reed-Solomon.png\" alt=\"A decorative image showing the matrices that get multiplied to allow Reed-Solomon code to re-create files.\" \/>\r\n<figcaption class=\"wp-element-caption\">A representation of <a href=\"\/blog\/reed-solomon\/\">Reed-Solomon erasure coding<\/a>, with some very cool Storage Pods in the background.<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 10px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<p>The <a href=\"\/blog\/cloud-storage-durability\/\" target=\"_blank\" rel=\"noreferrer noopener\">durability calculation<\/a> for this approach is much more complex than for replication, as it involves the time required to replace and rebuild failed drives as well as the probability that a drive will fail, but <a href=\"\/blog\/cloud-storage-durability\/\" target=\"_blank\" rel=\"noreferrer noopener\">we calculated<\/a> that we could take advantage of erasure coding in designing the Backblaze B2 Storage Cloud for 11 nines of durability with just 25% overhead in the amount of storage required.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>How does this work? Briefly, when we store a file, we split it into 16 equal-sized pieces, or shards. We then calculate four more shards, called parity shards, in such a way that the original file can be reconstructed from any 16 of the 20 shards. We then store the resulting 20 shards on 20 different drives, each in a separate <a href=\"\/blog\/the-storage-pod-story-innovation-to-commodity\/\" target=\"_blank\" rel=\"noreferrer noopener\">Storage Pod<\/a> (storage server).<\/p>\r\n\r\n\r\n\r\n<div class=\"abstract\" style=\"line-height: 1.8; margin: 24px 12px; padding: 24px 12px 10px 12px;\">Note: As hard disk drive capacity increases, so does the time required to recover after a drive failure, so we periodically adjust the ratio between data shards and parity shards to maintain our eleven nines durability target. Consequently, our very newest vaults use a 15+5 scheme.<\/div>\r\n\r\n\r\n\r\n<p>If a drive does fail, it can be replaced with a new drive, and its data rebuilt from the remaining good drives. We <a href=\"\/blog\/reed-solomon\/\" target=\"_blank\" rel=\"noreferrer noopener\">open sourced<\/a> our implementation of Reed-Solomon erasure coding, so you can dive into <a href=\"https:\/\/github.com\/Backblaze\/JavaReedSolomon\" target=\"_blank\" rel=\"noreferrer noopener\">the source code<\/a> for more details.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Additional Factors Impacting Cloud Storage Performance<\/h2>\r\n\r\n\r\n\r\n<p>In addition to bandwidth and latency, there are a few additional factors that impact cloud storage performance, including:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The size of your files.<\/li>\r\n\r\n\r\n\r\n<li>The number of files you upload or download.<\/li>\r\n\r\n\r\n\r\n<li>Block (part) size.<\/li>\r\n\r\n\r\n\r\n<li>The amount of available memory on your machine.\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Small files\u2014that is, those less than 5GB\u2014can be uploaded in a single API call. Larger files, from 5MB to 10TB, can be uploaded as \u201cparts\u201d, in multiple API calls. You\u2019ll notice that there is quite an overlap here! For uploading files between 5MB and 5GB, is it better to upload them in a single API call, or split them into parts? What is the optimum part size? For backup applications, which typically split all data into equal-sized blocks, storing each block as a file, what is the optimum block size? As with many questions, the answer is that it depends.<\/p>\r\n\r\n\r\n\r\n<p>Remember latency? Each API call incurs a more-or-less fixed overhead due to latency. For a 1GB file, assuming a single thread of execution, uploading all 1GB in a single API call will be faster than ten API calls each uploading a 100MB part, since those additional nine API calls each incur some latency overhead. So, bigger is better, right?<\/p>\r\n\r\n\r\n\r\n<p>Not necessarily. Multi-threading, as mentioned above, affords us the opportunity to upload multiple parts simultaneously, which improves performance\u2014but there are trade-offs. Typically, each part must be stored in memory as it is uploaded, so more threads means more memory consumption. If the number of threads multiplied by the part size exceeds available memory, then either the application will fail with an out of memory error, or data will be swapped to disk, reducing performance.<\/p>\r\n\r\n\r\n\r\n<p>Downloading data offers even more flexibility, since applications can specify <em>any<\/em> <em>portion<\/em> of the file to download in each API call. Whether uploading or downloading, there is a maximum number of threads that will drive throughput to consume all of the available bandwidth. Exceeding this maximum will consume more memory, but provide no performance benefit. If you go back to our pipe analogy, you\u2019ll have reached the maximum capacity of the pipe, so adding more pumps won\u2019t make things move faster.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>So, what to do to get the best performance possible for your use case? Simple: customize your settings.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>Most backup and file transfer tools allow you to configure the number of threads and the amount of data to be transferred per API call, whether that\u2019s block size or part size. If you are writing your own application, you should allow for these parameters to be configured. When it comes to deployment, some experimentation may be required to achieve maximum throughput given available memory.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">How to Evaluate Cloud Performance<\/h2>\r\n\r\n\r\n\r\n<p>To sum up, the cloud is increasingly becoming a cornerstone of every company\u2019s tech stack. <a href=\"https:\/\/www.gartner.com\/en\/newsroom\/press-releases\/2023-04-19-gartner-forecasts-worldwide-public-cloud-end-user-spending-to-reach-nearly-600-billion-in-2023\" target=\"_blank\" rel=\"noreferrer noopener\">Gartner predicts<\/a> that by 2026, 75% of organizations will adopt a digital transformation model predicated on cloud as the fundamental underlying platform. So, cloud storage performance will likely be a consideration for your company in the next few years if it isn\u2019t already.<\/p>\r\n\r\n\r\n\r\n<p>It\u2019s important to consider that cloud storage performance can be highly subjective and heavily influenced by things like use case considerations (i.e. backup and archive versus application storage, media workflow, or another), end user bandwidth and throughput, file size, block size, etc. Any evaluation of cloud performance should take these factors into account rather than simply relying on metrics in isolation. And, a holistic cloud strategy will likely have multiple operational schemas to optimize resources for different use cases.<\/p>\r\n\r\n\r\n\r\n<div class=\"abstract\" style=\"line-height: 1.8; margin: 24px 12px; padding: 24px 12px 10px 12px;\">\r\n<h4>Wait, Aren\u2019t You, Backblaze, a Cloud Storage Company?<\/h4>\r\n<p>Why, yes. Thank you for noticing. We ARE a cloud storage company, and we OFTEN get questions about all of the topics above. In fact, that\u2019s why we put this guide together\u2014our customers and prospects are the best sources of content ideas we can think of. Circling back to the beginning, it bears repeating that performance is one factor to consider in addition to security and cost. (And, hey, we would be remiss not to mention that we\u2019re also <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/pricing\" target=\"_blank\" rel=\"noopener\">one-fifth the cost of AWS S3.<\/a>) Ultimately, whether you choose Backblaze B2 Cloud Storage or not though, we hope the information is useful to you. Let us know if there\u2019s anything we missed.<\/p>\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>Latency, throughput, availability, and durability are the main factors that affect cloud performance. Let&#8217;s talk about how. <\/p>\n","protected":false},"author":175,"featured_media":110181,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[481,7,434],"tags":[468],"class_list":["post-110074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cdn","category-cloud-storage","category-featured-1","tag-b2cloud","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cloud Storage Performance: The Cloud Storage Metrics That Matter<\/title>\n<meta name=\"description\" content=\"Optimizing your cloud performance means understanding four key factors: latency, throughput, availability, and durability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud Storage Performance: The Cloud Storage Metrics That Matter\" \/>\n<meta property=\"og:description\" content=\"Optimizing your cloud performance means understanding four key factors: latency, throughput, availability, and durability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/\" \/>\n<meta property=\"og:site_name\" content=\"Backblaze Blog | Cloud Storage &amp; Cloud Backup\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/backblaze\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-24T16:05:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-12T22:00:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"820\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kari Rivas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@backblaze\" \/>\n<meta name=\"twitter:site\" content=\"@backblaze\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kari Rivas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud Storage Performance: The Cloud Storage Metrics That Matter","description":"Optimizing your cloud performance means understanding four key factors: latency, throughput, availability, and durability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/","og_locale":"en_US","og_type":"article","og_title":"Cloud Storage Performance: The Cloud Storage Metrics That Matter","og_description":"Optimizing your cloud performance means understanding four key factors: latency, throughput, availability, and durability.","og_url":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/","og_site_name":"Backblaze Blog | Cloud Storage &amp; Cloud Backup","article_publisher":"https:\/\/www.facebook.com\/backblaze","article_published_time":"2023-10-24T16:05:00+00:00","article_modified_time":"2025-12-12T22:00:38+00:00","og_image":[{"width":1440,"height":820,"url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","type":"image\/png"}],"author":"Kari Rivas","twitter_card":"summary_large_image","twitter_creator":"@backblaze","twitter_site":"@backblaze","twitter_misc":{"Written by":"Kari Rivas","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#article","isPartOf":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/"},"author":{"name":"Kari Rivas","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/cd16e363fb44fc4234121fca85ded1d2"},"headline":"Cloud Storage Performance: The Metrics That Matter","datePublished":"2023-10-24T16:05:00+00:00","dateModified":"2025-12-12T22:00:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/"},"wordCount":2887,"commentCount":2,"publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","keywords":["B2Cloud"],"articleSection":["CDN","Cloud Storage","Featured"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/","url":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/","name":"Cloud Storage Performance: The Cloud Storage Metrics That Matter","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#primaryimage"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","datePublished":"2023-10-24T16:05:00+00:00","dateModified":"2025-12-12T22:00:38+00:00","description":"Optimizing your cloud performance means understanding four key factors: latency, throughput, availability, and durability.","breadcrumb":{"@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#primaryimage","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","width":1440,"height":820,"caption":"A decorative image showing a cloud in the foreground and various mocked up graphs in the background."},{"@type":"BreadcrumbList","@id":"https:\/\/www.backblaze.com\/blog\/cloud-storage-performance-the-metrics-that-matter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloud Storage Performance: The Metrics That Matter"}]},{"@type":"WebSite","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","name":"Backblaze Cloud Solutions Blog","description":"Cloud Storage &amp; Cloud Backup","publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization","name":"Backblaze","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Backblaze"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/backblaze","https:\/\/x.com\/backblaze","https:\/\/www.youtube.com\/user\/Backblaze","https:\/\/en.wikipedia.org\/wiki\/Backblaze"]},{"@type":"Person","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/cd16e363fb44fc4234121fca85ded1d2","name":"Kari Rivas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/02\/Kari-Rivas-150x150.jpg","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/02\/Kari-Rivas-150x150.jpg","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/02\/Kari-Rivas-150x150.jpg","caption":"Kari Rivas"},"description":"As a Senior Product Marketing Manager, Kari Rivas leads backup and archive marketing at Backblaze, the leading cloud storage innovator delivering a modern alternative to traditional cloud providers. She works closely with IT professionals, managed service providers, and other businesses to ensure they never lose their valuable data. She received her MBA in 2010 and has spent 15 years in marketing, most notably in the education and SaaS spaces. Connect with her on LinkedIn.","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/author\/kari\/"}]}},"jetpack_featured_media_url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2023\/10\/bb-bh-Cloud-Performance.png","_links":{"self":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/110074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/users\/175"}],"replies":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/comments?post=110074"}],"version-history":[{"count":0,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/110074\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media\/110181"}],"wp:attachment":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media?parent=110074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/categories?post=110074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/tags?post=110074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}