CINXE.COM

Amazon RDS DB instance storage - Amazon Relational Database Service

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Amazon RDS DB instance storage - Amazon Relational Database Service</title><meta name="viewport" content="width=device-width,initial-scale=1" /><meta name="assets_root" content="/assets" /><meta name="target_state" content="CHAP_Storage" /><meta name="default_state" content="CHAP_Storage" /><link rel="icon" type="image/ico" href="/assets/images/favicon.ico" /><link rel="shortcut icon" type="image/ico" href="/assets/images/favicon.ico" /><link rel="canonical" href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" /><meta name="description" content="Work with the different storage types available for a DB instance on Amazon RDS." /><meta name="deployment_region" content="IAD" /><meta name="product" content="Amazon Relational Database Service" /><meta name="guide" content="User Guide" /><meta name="abstract" content="Amazon Web Services (AWS) documentation to help you set up, operate, and scale a relational database in the AWS Cloud using Amazon Relational Database Service (Amazon RDS). You can create DB instances that run Amazon Aurora, MariaDB, Microsoft SQL Server, MySQL, Oracle, and PostgreSQL." /><meta name="guide-locale" content="en_us" /><meta name="tocs" content="toc-contents.json" /><link rel="canonical" href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" /><link rel="alternative" href="https://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="id-id" /><link rel="alternative" href="https://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="id" /><link rel="alternative" href="https://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="de-de" /><link rel="alternative" href="https://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="de" /><link rel="alternative" href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="en-us" /><link rel="alternative" href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="en" /><link rel="alternative" href="https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="es-es" /><link rel="alternative" href="https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="es" /><link rel="alternative" href="https://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="fr-fr" /><link rel="alternative" href="https://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="fr" /><link rel="alternative" href="https://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="it-it" /><link rel="alternative" href="https://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="it" /><link rel="alternative" href="https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="ja-jp" /><link rel="alternative" href="https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="ja" /><link rel="alternative" href="https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="ko-kr" /><link rel="alternative" href="https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="ko" /><link rel="alternative" href="https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="pt-br" /><link rel="alternative" href="https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="pt" /><link rel="alternative" href="https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="zh-cn" /><link rel="alternative" href="https://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="zh-tw" /><link rel="alternative" href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" hreflang="x-default" /><meta name="feedback-item" content="RDS" /><meta name="this_doc_product" content="Amazon Relational Database Service" /><meta name="this_doc_guide" content="User Guide" /><script defer="" src="/assets/r/vendor4.js?version=2021.12.02"></script><script defer="" src="/assets/r/vendor3.js?version=2021.12.02"></script><script defer="" src="/assets/r/vendor1.js?version=2021.12.02"></script><script defer="" src="/assets/r/awsdocs-common.js?version=2021.12.02"></script><script defer="" src="/assets/r/awsdocs-doc-page.js?version=2021.12.02"></script><link href="/assets/r/vendor4.css?version=2021.12.02" rel="stylesheet" /><link href="/assets/r/awsdocs-common.css?version=2021.12.02" rel="stylesheet" /><link href="/assets/r/awsdocs-doc-page.css?version=2021.12.02" rel="stylesheet" /><script async="" id="awsc-panorama-bundle" type="text/javascript" src="https://prod.pa.cdn.uis.awsstatic.com/panorama-nav-init.js" data-config="{'appEntity':'aws-documentation','region':'us-east-1','service':'rds'}"></script><meta id="panorama-serviceSubSection" value="User Guide" /><meta id="panorama-serviceConsolePage" value="Amazon RDS DB instance storage" /></head><body class="awsdocs awsui"><div class="awsdocs-container"><awsdocs-header></awsdocs-header><awsui-app-layout id="app-layout" class="awsui-util-no-gutters" ng-controller="ContentController as $ctrl" header-selector="awsdocs-header" navigation-hide="false" navigation-width="$ctrl.navWidth" navigation-open="$ctrl.navOpen" navigation-change="$ctrl.onNavChange($event)" tools-hide="$ctrl.hideTools" tools-width="$ctrl.toolsWidth" tools-open="$ctrl.toolsOpen" tools-change="$ctrl.onToolsChange($event)"><div id="guide-toc" dom-region="navigation"><awsdocs-toc></awsdocs-toc></div><div id="main-column" dom-region="content" tabindex="-1"><awsdocs-view class="awsdocs-view"><div id="awsdocs-content"><head><title>Amazon RDS DB instance storage - Amazon Relational Database Service</title><meta name="pdf" content="/pdfs/AmazonRDS/latest/UserGuide/rds-ug.pdf#CHAP_Storage" /><meta name="rss" content="rdsupdates.rss" /><meta name="forums" content="https://repost.aws/tags/TAsibBK6ZeQYihN9as4S_psg" /><meta name="feedback" content="https://docs.aws.amazon.com/forms/aws-doc-feedback?hidden_service_name=RDS&amp;topic_url=https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/CHAP_Storage.html" /><meta name="feedback-yes" content="feedbackyes.html?topic_url=https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/CHAP_Storage.html" /><meta name="feedback-no" content="feedbackno.html?topic_url=https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/CHAP_Storage.html" /><meta name="keywords" content="Amazon Relational Database Service,RDS,DB Instance" /><script type="application/ld+json"> { "@context" : "https://schema.org", "@type" : "BreadcrumbList", "itemListElement" : [ { "@type" : "ListItem", "position" : 1, "name" : "AWS", "item" : "https://aws.amazon.com" }, { "@type" : "ListItem", "position" : 2, "name" : "Amazon RDS", "item" : "https://docs.aws.amazon.com/rds/index.html" }, { "@type" : "ListItem", "position" : 3, "name" : "User Guide", "item" : "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide" }, { "@type" : "ListItem", "position" : 4, "name" : "What is Amazon Relational Database Service (Amazon RDS)?", "item" : "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html" }, { "@type" : "ListItem", "position" : 5, "name" : "Amazon RDS DB instance storage", "item" : "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html" } ] } </script></head><body><div id="main"><div style="display: none"><a href="/pdfs/AmazonRDS/latest/UserGuide/rds-ug.pdf#CHAP_Storage" target="_blank" rel="noopener noreferrer" title="Open PDF"></a></div><div id="breadcrumbs" class="breadcrumb"><a href="https://aws.amazon.com">AWS</a><a href="/index.html">Documentation</a><a href="/rds/index.html">Amazon RDS</a><a href="Welcome.html">User Guide</a></div><div id="page-toc-src"><a href="#Concepts.Storage">Storage types</a><a href="#USER_PIOPS">Provisioned IOPS storage</a><a href="#Concepts.Storage.GeneralSSD">General Purpose storage</a><a href="#storage-comparison">Comparing SSD storage types</a><a href="#CHAP_Storage.Magnetic">Magnetic storage (legacy, not recommended)</a><a href="#CHAP_Storage.dlv">Dedicated log volume (DLV)</a><a href="#Concepts.Storage.Metrics">Monitoring database performance</a><a href="#CHAP_Storage.Other.Factors">Factors that affect database performance</a></div><div id="main-content" class="awsui-util-container"><div id="main-col-body"><awsdocs-language-banner data-service="$ctrl.pageService"></awsdocs-language-banner><h1 class="topictitle" id="CHAP_Storage">Amazon RDS DB instance storage</h1><div class="awsdocs-page-header-container"><awsdocs-page-header></awsdocs-page-header><awsdocs-filter-selector id="awsdocs-filter-selector"></awsdocs-filter-selector></div><p>DB instances for Amazon RDS for Db2, MariaDB, MySQL, PostgreSQL, Oracle, and Microsoft SQL Server use Amazon Elastic Block Store (Amazon EBS) volumes for database and log storage.</p><p>In some cases, your database workload might not be able to achieve 100 percent of the IOPS that you have provisioned. For more information, see <a href="#CHAP_Storage.Other.Factors">Factors that affect database performance</a>.</p><p>For more information about instance storage pricing, see <a href="https://aws.amazon.com/rds/pricing/" rel="noopener noreferrer" target="_blank"><span>Amazon RDS pricing</span><awsui-icon class="awsdocs-link-icon" name="external"></awsui-icon></a>.</p><div class="highlights" id="inline-topiclist"><h6>Topics</h6><ul><li><a href="#Concepts.Storage">Amazon RDS storage types</a></li><li><a href="#USER_PIOPS">Provisioned IOPS SSD storage</a></li><li><a href="#Concepts.Storage.GeneralSSD">General Purpose SSD storage</a></li><li><a href="#storage-comparison">Comparing solid-state drive (SSD) storage types</a></li><li><a href="#CHAP_Storage.Magnetic">Magnetic storage (legacy, not recommended)</a></li><li><a href="#CHAP_Storage.dlv">Dedicated log volume (DLV)</a></li><li><a href="#Concepts.Storage.Metrics">Monitoring database performance</a></li><li><a href="#CHAP_Storage.Other.Factors">Factors that affect database performance</a></li></ul></div> <h2 id="Concepts.Storage">Amazon RDS storage types</h2> <p>Amazon RDS provides three storage types: Provisioned IOPS SSD (also known as io1 and io2 Block Express), General Purpose SSD (also known as gp2 and gp3), and magnetic (also known as standard). They differ in performance characteristics and price, which means that you can tailor your storage performance and cost to the needs of your database workload. <span>You can create Db2, MySQL, MariaDB, Oracle, SQL Server, and PostgreSQL RDS DB instances with up to 64 tebibytes (TiB) of storage.</span> RDS for Db2 doesn't support the gp2 and magnetic storage types.</p> <p>The following list briefly describes the three storage types:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p><span class="topcom">Provisioned IOPS SSD</span> – Provisioned IOPS storage is designed to meet the needs of I/O-intensive workloads, particularly database workloads, that require low I/O latency and consistent I/O throughput. Provisioned IOPS storage is best suited for production environments.</p> <p>For more information about Provisioned IOPS storage, including the storage size ranges, see <a href="#USER_PIOPS">Provisioned IOPS SSD storage</a>.</p> </li><li class="listitem"> <p><span class="topcom">General Purpose SSD</span> – General Purpose SSD volumes offer cost-effective storage that is ideal for a broad range of workloads running on medium-sized DB instances. General Purpose storage is best suited for development and testing environments.</p> <p>For more information about General Purpose SSD storage, including the storage size ranges, see <a href="#Concepts.Storage.GeneralSSD">General Purpose SSD storage</a>.</p> </li><li class="listitem"> <p><span class="topcom">Magnetic</span> – Amazon RDS also supports magnetic storage for backward compatibility. We recommend that you use General Purpose SSD or Provisioned IOPS SSD for any new storage needs. The maximum amount of storage allowed for DB instances on magnetic storage is 3 TiB. For more information, see <a href="#CHAP_Storage.Magnetic">Magnetic storage (legacy, not recommended)</a>.</p> </li></ul></div> <p>When you select General Purpose SSD or Provisioned IOPS SSD, depending on the engine selected and the amount of storage requested, Amazon RDS automatically stripes across multiple volumes to enhance performance, as shown in the following table.</p> <div class="table-container" id="rds-provisioned-iops-storage-volumes-reference"><div class="table-contents"><table id="w1411aab5c41c15c11"><thead> <tr> <th>Database engine</th> <th>Amazon RDS storage size</th> <th>Number of volumes provisioned</th> </tr> </thead> <tr> <td tabindex="-1">Db2</td> <td tabindex="-1">Less than 400 GiB</td> <td tabindex="-1">1</td> </tr> <tr> <td tabindex="-1">Db2</td> <td tabindex="-1">400–65,536 GiB</td> <td tabindex="-1">4</td> </tr> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">Less than 400 GiB</td> <td tabindex="-1">1</td> </tr> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">400–65,536 GiB</td> <td tabindex="-1">4</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">Less than 200 GiB</td> <td tabindex="-1">1</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">200–65,536 GiB</td> <td tabindex="-1">4</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">Any</td> <td tabindex="-1">1</td> </tr> </table></div></div> <p>When you modify a General Purpose SSD or Provisioned IOPS SSD volume, it goes through a sequence of states. While the volume is in the <code class="code">optimizing</code> state, your volume performance is between the source and target configuration specifications. Transitional volume performance will be no less than the lower of the two specifications.</p> <div class="awsdocs-note awsdocs-important"><div class="awsdocs-note-title"><awsui-icon name="status-warning" variant="error"></awsui-icon><h6>Important</h6></div><div class="awsdocs-note-text"><p>When you modify an instance’s storage so that it goes from one volume to four volumes, or when you modify an instance using magnetic storage, Amazon RDS doesn't use the Elastic Volumes feature. Instead, Amazon RDS provisions new volumes and transparently moves the data from the old volume to the new volumes. This operation consumes a significant amount of IOPS and throughput of both the old and new volumes. Depending on the size of the volume and the amount of database workload present during the modification, this operation can consume a high amount of IOPS, significantly increase I/O latency, and take several hours to complete, while the RDS instance remains in the <code class="code">Modifying</code> state.</p></div></div> <h2 id="USER_PIOPS">Provisioned IOPS SSD storage</h2> <p>For a production application that requires fast and consistent I/O performance, we recommend Provisioned IOPS storage. Provisioned IOPS storage is a storage type that delivers predictable performance, and consistently low latency. Provisioned IOPS storage is optimized for online transaction processing (OLTP) workloads that require consistent performance. Provisioned IOPS helps performance tuning of these workloads.</p> <p>When you create a DB instance, you specify the IOPS rate and the size of the volume. Amazon RDS provides that IOPS rate for the DB instance until you change it.</p> <p>Amazon RDS offers two types of Provisioned IOPS SSD storage: <a href="#USER_PIOPS.io2">io2 Block Express storage (recommended)</a> and <a href="#USER_PIOPS.io1">io1 storage (previous generation)</a>.</p> <h3 id="USER_PIOPS.io2">io2 Block Express storage (recommended)</h3> <p>For I/O-intensive and latency-sensitive workloads, you can use Provisioned IOPS SSD io2 Block Express storage to achieve up to 256,000 I/O operations per second (IOPS). The throughput of io2 Block Express volumes varies based on the amount of IOPS provisioned per volume and on the size of the I/O operations being run.</p> <p>All RDS io2 volumes based on the AWS Nitro System are io2 Block Express volumes and provide sub-millisecond average latency. DB instances not based on the AWS Nitro System are io2 volumes. </p> <p>The following table shows the range of Provisioned IOPS and maximum throughput for each database engine and storage size range. </p> <div class="table-container" id="rds-provisioned-iops-io2-reference"><div class="table-contents"><table id="w1411aab5c41c17c11b9"><thead> <tr> <th>Database engine</th> <th>Range of storage size</th> <th>Range of Provisioned IOPS</th> <th>Maximum throughput</th> </tr> </thead> <tr> <td tabindex="-1">Db2, MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">100–65,536 GiB</td> <td tabindex="-1">1,000–256,000 IOPS</td> <td tabindex="-1">16,000 MiB/s</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">100–199 GiB</td> <td tabindex="-1">1,000–199,000 IOPS</td> <td tabindex="-1">16,000 MiB/s</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">200–65,536 GiB</td> <td tabindex="-1">1,000–256,000 IOPS</td> <td tabindex="-1">16,000 MiB/s</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">20–65,536 GiB</td> <td tabindex="-1">1,000–256,000 IOPS</td> <td tabindex="-1">4,000 MiB/s</td> </tr> </table></div></div> <p>The IOPS and storage size ranges have the following constraints:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>The ratio of IOPS to allocated storage (in GiB) must be from 0.5–1,000. For DB instances not based on the AWS Nitro System, the ratio must be from 0.5–500.</p> </li><li class="listitem"> <p>Maximum IOPS can be provisioned with volumes 256 GiB and larger (1,000 IOPS × 256 GiB = 256,000 IOPS). For DB instances not based on the AWS Nitro System, maximum IOPS are achieved at 512 GiB (500 IOPS x 512 GiB = 256,000 IOPS).</p> </li><li class="listitem"> <p>Throughput scales proportionally up to 0.256 MiB/s per provisioned IOPS. Maximum throughput of 4,000 MiB/s can be achieved at 256,000 IOPS with a 16-KiB I/O size and 16,000 IOPS or higher with a 256-KiB I/O size. For DB instances not based on the AWS Nitro System, maximum throughput of 2,000 MiB/s can be achieved at 128,000 IOPS with a 16-KiB I/O size.</p> </li><li class="listitem"> <p>If you're using storage autoscaling, the same ratios between IOPS and maximum storage threshold (in GiB) also apply. For more information on storage autoscaling, see <a href="./USER_PIOPS.Autoscaling.html">Managing capacity automatically with Amazon RDS storage autoscaling</a>.</p> </li></ul></div> <p>Amazon RDS io2 Block Express volumes are available in the following AWS Regions:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>Asia Pacific (Hong Kong)</p> </li><li class="listitem"> <p>Asia Pacific (Mumbai)</p> </li><li class="listitem"> <p>Asia Pacific (Seoul)</p> </li><li class="listitem"> <p>Asia Pacific (Singapore)</p> </li><li class="listitem"> <p>Asia Pacific (Sydney)</p> </li><li class="listitem"> <p>Asia Pacific (Tokyo)</p> </li><li class="listitem"> <p>Canada (Central)</p> </li><li class="listitem"> <p>Europe (Frankfurt)</p> </li><li class="listitem"> <p>Europe (Ireland)</p> </li><li class="listitem"> <p>Europe (London)</p> </li><li class="listitem"> <p>Europe (Stockholm)</p> </li><li class="listitem"> <p>Middle East (Bahrain)</p> </li><li class="listitem"> <p>US East (Ohio)</p> </li><li class="listitem"> <p>US East (N. Virginia)</p> </li><li class="listitem"> <p>US West (N. California)</p> </li><li class="listitem"> <p>US West (Oregon)</p> </li></ul></div> <h3 id="USER_PIOPS.io1">io1 storage (previous generation)</h3> <p>For I/O-intensive workloads, you can use Provisioned IOPS SSD io1 storage and achieve up to 256,000 I/O operations per second (IOPS). The throughput of io1 volumes varies based on the amount of IOPS provisioned per volume and on the size of the I/O operations being run. We recommend using io2 Block Express storage where it's available.</p> <p>The following table shows the range of Provisioned IOPS and maximum throughput for each database engine and storage size range.</p> <div class="table-container" id="rds-provisioned-iops-io1-reference"><div class="table-contents"><table id="w1411aab5c41c17c13b7"><thead> <tr> <th>Database engine</th> <th>Range of storage size</th> <th>Range of Provisioned IOPS</th> <th>Maximum throughput</th> </tr> </thead> <tr> <td tabindex="-1">Db2, MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">100–399 GiB</td> <td tabindex="-1">1,000–19,950 IOPS</td> <td tabindex="-1">500 MiB/s</td> </tr> <tr> <td tabindex="-1">Db2, MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">400–65,536 GiB</td> <td tabindex="-1">1,000–256,000 IOPS</td> <td tabindex="-1">4,000 MiB/s</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">100–199 GiB</td> <td tabindex="-1">1,000–9,950 IOPS</td> <td tabindex="-1">500 MiB/s</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">200–65,536 GiB</td> <td tabindex="-1">1,000–256,000 IOPS¹</td> <td tabindex="-1">4,000 MiB/s</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">20–16,384 GiB</td> <td tabindex="-1">1,000–64,000 IOPS²</td> <td tabindex="-1">1,000 MiB/s</td> </tr> </table></div></div> <div class="awsdocs-note"><div class="awsdocs-note-title"><awsui-icon name="status-info" variant="link"></awsui-icon><h6>Note</h6></div><div class="awsdocs-note-text"><p>¹ For Oracle, you can provision the maximum 256,000 IOPS only on the r5b instance type.</p><p>² For SQL Server, the maximum 64,000 IOPS is guaranteed only on <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Nitro-based instances</a> that are on the m5*, m6i, r5*, r6i, and z1d instance types. Other instance types guarantee performance up to 32,000 IOPS.</p></div></div> <p>The IOPS and storage size ranges have the following constraints:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>The ratio of IOPS to allocated storage (in GiB) must be from 1–50 on RDS for SQL Server, and 0.5–50 on other RDS DB engines.</p> </li><li class="listitem"> <p>If you're using storage autoscaling, the same ratios between IOPS and maximum storage threshold (in GiB) also apply. </p> <p>For more information on storage autoscaling, see <a href="./USER_PIOPS.Autoscaling.html">Managing capacity automatically with Amazon RDS storage autoscaling</a>.</p> </li></ul></div> <h3 id="Overview.ProvisionedIOPS-support">Combining Provisioned IOPS storage with Multi-AZ deployments or read replicas</h3> <p>For production OLTP use cases, we recommend that you use Multi-AZ deployments for enhanced fault tolerance with Provisioned IOPS storage for fast and predictable performance.</p> <p>You can also use Provisioned IOPS storage with read replicas for MySQL, MariaDB or PostgreSQL. The type of storage for a read replica is independent of that on the primary DB instance. For example, you might use General Purpose SSD for read replicas with a primary DB instance that uses Provisioned IOPS SSD storage to reduce costs. However, your read replica's performance in this case might differ from that of a configuration where both the primary DB instance and the read replicas use Provisioned IOPS storage.</p> <h3 id="Overview.ProvisionedIOPS-cost">Provisioned IOPS storage costs</h3> <p>With Provisioned IOPS storage, you are charged for the provisioned resources whether or not you use them in a given month.</p> <p>For more information about pricing, see <a href="https://aws.amazon.com/rds/pricing/" rel="noopener noreferrer" target="_blank"><span>Amazon RDS pricing</span><awsui-icon class="awsdocs-link-icon" name="external"></awsui-icon></a>.</p> <h3 id="Overview.ProvisionedIOPS.gettingthemostoutofpiops">Getting the best performance from Amazon RDS Provisioned IOPS storage</h3> <p>If your workload is I/O constrained, using Provisioned IOPS storage can increase the number of I/O requests that the system can process concurrently. Increased concurrency allows for decreased latency because I/O requests spend less time in a queue. Decreased latency allows for faster database commits, which improves response time and allows for higher database throughput.</p> <p>Provisioned IOPS storage provides a way to reserve I/O capacity by specifying IOPS. However, as with any other system capacity attribute, its maximum throughput under load is constrained by the resource that is consumed first. That resource might be network bandwidth, CPU, memory, or database internal resources.</p> <h2 id="Concepts.Storage.GeneralSSD">General Purpose SSD storage</h2> <p>General Purpose storage offers cost-effective storage that is acceptable for most database workloads that aren't latency or performance sensitive.</p> <div class="awsdocs-note"><div class="awsdocs-note-title"><awsui-icon name="status-info" variant="link"></awsui-icon><h6>Note</h6></div><div class="awsdocs-note-text"><p>DB instances that use General Purpose storage can experience much longer latency than instances that use Provisioned IOPS storage. If you need a DB instance with minimum latency after these operations, we recommend using <a href="#USER_PIOPS">Provisioned IOPS SSD storage</a>.</p></div></div> <p>Amazon RDS offers two types of General Purpose storage: <a href="#gp3-storage">gp3 storage (recommended)</a> and <a href="#gp2-storage">gp2 storage (previous generation)</a>.</p> <h3 id="gp3-storage">gp3 storage (recommended)</h3> <p>By using General Purpose gp3 storage volumes, you can customize storage performance independently of storage capacity. <em>Storage performance</em> is the combination of I/O operations per second (IOPS) and how fast the storage volume can perform reads and writes (storage throughput). On gp3 storage volumes, Amazon RDS provides a baseline storage performance of 3000 IOPS and 125 MiB/s.</p> <p>For every RDS DB engine except RDS for SQL Server, when the storage size for gp3 volumes reaches a certain threshold, the baseline storage performance increases. This is because of <em>volume striping</em>, where the storage uses four volumes instead of one. RDS for SQL Server doesn't support volume striping, and therefore doesn't have a threshold value. For striped volumes, Amazon RDS provides a baseline storage performance of 12,000 IOPS and 500 MiB/s.</p> <p>Storage performance for gp3 volumes on Amazon RDS DB engines, including the threshold, is shown in the following table.</p> <div class="table-container"><div class="table-contents"><table id="w1411aab5c41c19b9b9"><thead> <tr> <th>DB engine</th> <th>Storage size</th> <th>Baseline storage performance</th> <th>Range of Provisioned IOPS</th> <th>Range of provisioned storage throughput</th> </tr> </thead> <tr> <td tabindex="-1">Db2, MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">20–399 GiB</td> <td tabindex="-1">3,000 IOPS/125 MiB/s</td> <td tabindex="-1">N/A</td> <td tabindex="-1">N/A</td> </tr> <tr> <td tabindex="-1">Db2, MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">400–65,536 GiB</td> <td tabindex="-1">12,000 IOPS/500 MiB/s</td> <td tabindex="-1">12,000–64,000 IOPS</td> <td tabindex="-1">500–4,000 MiB/s</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">20–199 GiB</td> <td tabindex="-1">3,000 IOPS/125 MiB/s</td> <td tabindex="-1">N/A</td> <td tabindex="-1">N/A</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">200–65,536 GiB </td> <td tabindex="-1">12,000 IOPS/500 MiB/s</td> <td tabindex="-1">12,000–64,000 IOPS</td> <td tabindex="-1">500–4,000 MiB/s</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">20–16,384 GiB</td> <td tabindex="-1">3,000 IOPS/125 MiB/s</td> <td tabindex="-1">3,000–16,000 IOPS</td> <td tabindex="-1">125–1,000 MiB/s</td> </tr> </table></div></div> <p>For every DB engine except RDS for SQL Server, you can provision additional IOPS and storage throughput when storage size is at or above the threshold value. For RDS for SQL Server, you can provision additional IOPS and storage throughput for any available storage size. For all DB engines, you pay for only the additional provisioned storage performance. For more information, see <a href="https://aws.amazon.com/rds/pricing/" rel="noopener noreferrer" target="_blank"><span>Amazon RDS pricing</span><awsui-icon class="awsdocs-link-icon" name="external"></awsui-icon></a>.</p> <p>Although the added Provisioned IOPS and storage throughput aren't dependent on the storage size, they are related to each other. When you raise the IOPS above 32,000 for MariaDB and MySQL, the storage throughput value automatically increases from 500 MiBps. For example, when you set the IOPS to 40,000 on RDS for MySQL, the storage throughput must be at least 625 MiBps. The automatic increase doesn't happen for Db2, Oracle, PostgreSQL, and SQL Server DB instances.</p> <p>For Multi-AZ DB clusters, Amazon RDS automatically sets the throughput value based on the IOPS that you provision. You can't modify the throughput value.</p> <p>Storage performance values for gp3 volumes on RDS have the following constraints:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>The maximum ratio of storage throughput to IOPS is 0.25 for all supported DB engines.</p> </li><li class="listitem"> <p>The minimum ratio of IOPS to allocated storage (in GiB) is 0.5 on RDS for SQL Server. There is no minimum ratio for the other supported DB engines.</p> </li><li class="listitem"> <p>The maximum ratio of IOPS to allocated storage is 500 for all supported DB engines.</p> </li><li class="listitem"> <p>If you're using storage autoscaling, the same ratios between IOPS and maximum storage threshold (in GiB) also apply. </p> <p>For more information on storage autoscaling, see <a href="./USER_PIOPS.Autoscaling.html">Managing capacity automatically with Amazon RDS storage autoscaling</a>.</p> </li></ul></div> <h3 id="gp2-storage">gp2 storage (previous generation)</h3> <p>When your applications don't need high storage performance, you can use General Purpose SSD gp2 storage. Baseline I/O performance for gp2 storage is 3 IOPS for each GiB, with a minimum of 100 IOPS. This relationship means that larger volumes have better performance. For example, baseline performance for one 100-GiB volume is 300 IOPS. Baseline performance for one 1,000 GiB volume is 3,000 IOPS.</p> <p>Individual gp2 volumes below 1,000 GiB in size also have the ability to burst to 3,000 IOPS for extended periods of time. Volume I/O credit balance determines burst performance. For a more detailed description of how baseline performance and I/O credit balance affect performance, see the post <a href="https://aws.amazon.com/blogs/database/understanding-burst-vs-baseline-performance-with-amazon-rds-and-gp2/" rel="noopener noreferrer" target="_blank"><span>Understanding burst vs. baseline performance with Amazon RDS and gp2</span><awsui-icon class="awsdocs-link-icon" name="external"></awsui-icon></a> on the AWS Database Blog.</p> <p>Many workloads never deplete the burst balance. However, some workloads can exhaust the 3,000 IOPS burst storage credit balance, so you should plan your storage capacity to meet the needs of your workloads.</p> <p>For gp2 volumes larger than 4,000 GiB, the baseline performance is greater than the burst performance. For such volumes, burst is irrelevant because the baseline performance is better than the 3,000 IOPS burst performance. However, for DB instances of certain engines and sizes, storage is <em>striped</em> across four volumes providing four times the baseline throughput, and four times the burst IOPS of a single volume.</p> <p>Storage performance for gp2 volumes of various storage sizes on Amazon RDS DB engines is shown in the following table.</p> <div class="table-container"><div class="table-contents"><table id="w1411aab5c41c19c11c15"><thead> <tr> <th>DB engine</th> <th>RDS storage size</th> <th>Range of baseline IOPS</th> <th>Range of baseline throughput</th> <th>Burst IOPS</th> </tr> </thead> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">5–399 GiB¹</td> <td tabindex="-1">100-1197 IOPS</td> <td tabindex="-1">128-250 MiB/s</td> <td tabindex="-1">3,000</td> </tr> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">400–1,335 GiB </td> <td tabindex="-1">1,200-4,005 IOPS</td> <td tabindex="-1">512-1,000 MiB/s</td> <td tabindex="-1">12,000</td> </tr> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">1,336–3,999 GiB </td> <td tabindex="-1">4008-11,997 IOPS</td> <td tabindex="-1">1,000 MiB/s</td> <td tabindex="-1">12,000</td> </tr> <tr> <td tabindex="-1">MariaDB, MySQL, and PostgreSQL</td> <td tabindex="-1">4,000–65,536 GiB </td> <td tabindex="-1">12,000-64,000 IOPS</td> <td tabindex="-1">1,000 MiB/s</td> <td tabindex="-1">N/A²</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">20–199 GiB</td> <td tabindex="-1">100-597 IOPS</td> <td tabindex="-1">128-250 MiB/s</td> <td tabindex="-1">3,000</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">200–1,335 GiB</td> <td tabindex="-1">600-4,005 IOPS</td> <td tabindex="-1">500-1,000 MiB/s</td> <td tabindex="-1">12,000</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">1,336–3,999 GiB</td> <td tabindex="-1">4008-11,997 IOPS</td> <td tabindex="-1">1,000 MiB/s</td> <td tabindex="-1">12,000</td> </tr> <tr> <td tabindex="-1">Oracle</td> <td tabindex="-1">4,000–65,536 GiB</td> <td tabindex="-1">12,000-64,000 IOPS</td> <td tabindex="-1">1,000 MiB/s</td> <td tabindex="-1">N/A²</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">20–333 GiB</td> <td tabindex="-1">100-999 IOPS</td> <td tabindex="-1">128-250 MiB/s</td> <td tabindex="-1">3,000</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">334–999 GiB</td> <td tabindex="-1">1,002-2,997 IOPS</td> <td tabindex="-1">250 MiB/s</td> <td tabindex="-1">3,000</td> </tr> <tr> <td tabindex="-1">SQL Server</td> <td tabindex="-1">1,000–16,384 GiB</td> <td tabindex="-1">3,000-16,000 IOPS</td> <td tabindex="-1">250 MiB/s</td> <td tabindex="-1">N/A²</td> </tr> </table></div></div> <div class="awsdocs-note"><div class="awsdocs-note-title"><awsui-icon name="status-info" variant="link"></awsui-icon><h6>Note</h6></div><div class="awsdocs-note-text"><p>¹ Using the AWS Management Console, you can create DB instances with a minimum storage size of 5 GiB in the Free tier for the db.t3.micro and db.t4g.micro DB instance classes. Otherwise, the minimum storage size is 20 GiB. This limitation doesn't apply to the AWS CLI and RDS API.</p><p>² The baseline performance of the volume exceeds the maximum burst performance.</p></div></div> <h2 id="storage-comparison">Comparing solid-state drive (SSD) storage types</h2> <p>The following table shows use cases and performance characteristics for the SSD storage volumes used by Amazon RDS.</p> <div class="table-container"><div class="table-contents"><table id="w1411aab5c41c21b5"><thead> <tr> <th>Characteristic</th> <th>Provisioned IOPS (io2 Block Express)</th> <th>Provisioned IOPS (io1)</th> <th>General Purpose (gp3)</th> <th>General Purpose (gp2)</th> </tr> </thead> <tr> <td tabindex="-1">Description</td> <td tabindex="-1"> <p>Highest performance within the RDS storage portfolio (IOPS, throughput, latency)</p> <p>Designed for latency-sensitive, transactional workloads</p> </td> <td tabindex="-1"> <p>Consistent storage performance (IOPS, throughput, latency)</p> <p>Designed for latency-sensitive, transactional workloads</p> </td> <td tabindex="-1"> <p>Flexibility in provisioning storage, IOPS, and throughput independently</p> <p>Balances price performance for a wide variety of transactional workloads</p> </td> <td tabindex="-1"> <p>Provides burstable IOPS</p> <p>Balances price performance for a wide variety of transactional workloads</p> </td> </tr> <tr> <td tabindex="-1">Use cases</td> <td tabindex="-1"> <p>Business-critical transactional workloads that require sub-millisecond latency and sustained IOPS performance up to 256,000 IOPS</p> </td> <td tabindex="-1"> <p>Transactional workloads that require sustained IOPS performance up to 256,000 IOPS</p> </td> <td tabindex="-1"> <p>Broad range of workloads running on medium-sized relational databases in development/test environments</p> </td> <td tabindex="-1"> <p>Broad range of workloads running on medium-sized relational databases in development/test environments</p> </td> </tr> <tr> <td tabindex="-1">Latency</td> <td tabindex="-1"> <p>Sub-millisecond, provided consistently 99.9% of the time</p> </td> <td tabindex="-1"> <p>Single-digit millisecond, provided consistently 99.9% of the time</p> </td> <td tabindex="-1"> <p>Single-digit millisecond, provided consistently 99% of the time</p> </td> <td tabindex="-1"> <p>Single-digit millisecond, provided consistently 99% of the time</p> </td> </tr> <tr> <td tabindex="-1">Volume size</td> <td tabindex="-1"> <p>100–65,536 GiB</p> </td> <td tabindex="-1"> <p>100–65,536 GiB (20–16,384 GiB on RDS for SQL Server)</p> </td> <td tabindex="-1"> <p>20–65,536 GiB (16,384 GiB on RDS for SQL Server)</p> </td> <td tabindex="-1"> <p>20–65,536 GiB (16,384 GiB on RDS for SQL Server)</p> </td> </tr> <tr> <td tabindex="-1">Maximum IOPS</td> <td tabindex="-1"> <p>256,000</p> </td> <td tabindex="-1"> <p>256,000 (64,000 on RDS for SQL Server)</p> </td> <td tabindex="-1"> <p>64,000 (16,000 on RDS for SQL Server)</p> </td> <td tabindex="-1"> <p>64,000 (16,000 on RDS for SQL Server)</p> <div class="awsdocs-note"><div class="awsdocs-note-title"><awsui-icon name="status-info" variant="link"></awsui-icon><h6>Note</h6></div><div class="awsdocs-note-text"><p>You can't provision IOPS directly on gp2 storage. IOPS varies with the allocated storage size.</p></div></div> </td> </tr> <tr> <td tabindex="-1">Maximum throughput</td> <td tabindex="-1"> <p>Scales based on Provisioned IOPS up to 4,000 MB/s</p> <p>Throughput scales proportionally up to 0.256 MiB/s per provisioned IOPS. Maximum throughput of 4,000 MiB/s can be achieved at 256,000 IOPS with a 16-KiB I/O size and 16,000 IOPS or higher with a 256-KiB I/O size.</p> <p>For instances not based on the AWS Nitro System, maximum throughput of 2,000 MiB/s can be achieved at 128,000 IOPS with a 16-KiB I/O size.</p> </td> <td tabindex="-1"> <p>Scales based on Provisioned IOPS up to 4,000 MB/s</p> </td> <td tabindex="-1"> <p>Provision additional throughput up to 4,000 MB/s (1000 MB/s on RDS for SQL Server)</p> </td> <td tabindex="-1"> <p>1000 MB/s (250 MB/s on RDS for SQL Server)</p> </td> </tr> <tr> <td tabindex="-1">AWS CLI and RDS API name</td> <td tabindex="-1">io2</td> <td tabindex="-1">io1</td> <td tabindex="-1">gp3</td> <td tabindex="-1">gp2</td> </tr> </table></div></div> <h2 id="CHAP_Storage.Magnetic">Magnetic storage (legacy, not recommended)</h2> <p>Amazon RDS also supports magnetic storage for backward compatibility. We recommend that you use General Purpose SSD or Provisioned IOPS SSD for any new storage needs. The following are some limitations for magnetic storage:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"><p>Doesn't allow you to scale storage when using the SQL Server database engine.</p></li><li class="listitem"> <p>Doesn't allow you to convert to a different storage type when using the SQL Server database engine.</p> </li><li class="listitem"> <p>Doesn't support storage autoscaling.</p> </li><li class="listitem"><p>Doesn't support zero-ETL integrations with Amazon Redshift.</p></li><li class="listitem"><p>Doesn't support elastic volumes.</p></li><li class="listitem"><p>Limited to a maximum size of 3 TiB.</p></li><li class="listitem"><p>Limited to a maximum of 1,000 IOPS.</p></li></ul></div> <h2 id="CHAP_Storage.dlv">Dedicated log volume (DLV)</h2> <p>You can use a dedicated log volume (DLV) for a DB instance that uses Provisioned IOPS (PIOPS) storage by using the Amazon RDS console, AWS CLI, or Amazon RDS API. A DLV moves PostgreSQL database transaction logs and MySQL/MariaDB redo logs and binary logs to a storage volume that's separate from the volume containing the database tables. A DLV makes transaction write logging more efficient and consistent. DLVs are ideal for databases with large allocated storage, high I/O per second (IOPS) requirements, or latency-sensitive workloads.</p> <p>DLVs are supported for PIOPS storage (io1 and io2 Block Express), and are created with a fixed size of 1,024 GiB and 3,000 Provisioned IOPS.</p> <div class="awsdocs-note"><div class="awsdocs-note-title"><awsui-icon name="status-info" variant="link"></awsui-icon><h6>Note</h6></div><div class="awsdocs-note-text"><p>DLVs aren't supported for General Purpose storage (gp2 and gp3).</p></div></div> <p>Amazon RDS supports DLVs in all AWS Regions for the following versions:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"><p>MariaDB 10.6.7 and higher 10 versions</p></li><li class="listitem"><p>MySQL 8.0.28 and higher 8.0 versions, MySQL 8.4.3 and higher 8.4 versions</p></li><li class="listitem"><p>PostgreSQL 13.10 and higher 13 versions, 14.7 and higher 14 versions, 15.2 and higher 15 versions, and 16.1 and higher 16 versions</p></li></ul></div> <p>RDS supports DLVs with Multi-AZ deployments. When you modify or create a Multi-AZ instance, A DLV is created for both the primary and the secondary.</p> <p>RDS supports DLVs with read replicas. If the primary DB instance has a DLV enabled, all read replicas created after enabling DLV will also have a DLV. Any read replicas created before the switch to DLV will not have it enabled unless explicitly modified to do so. We recommend all read replicas attached to a primary instance before DLV was enabled also be manually modified to have A DLV.</p> <p>After you modify the DLV setting for a DB instance, the DB instance must be rebooted.</p> <p>For information on enabling a DLV, see <a href="./USER_PIOPS.dlv.html">Using a dedicated log volume (DLV)</a>.</p> <h2 id="Concepts.Storage.Metrics">Monitoring database performance</h2> <p>Amazon RDS provides several metrics that you can use to determine how your DB instance is performing. You can view the metrics on the summary page for your instance in Amazon RDS Management Console. You can also use Amazon CloudWatch to monitor these metrics. For more information, see <a href="./USER_Monitoring.html">Viewing metrics in the Amazon RDS console</a>. Enhanced Monitoring provides more detailed I/O metrics; for more information, see <a href="./USER_Monitoring.OS.html">Monitoring OS metrics with Enhanced Monitoring</a>.</p> <p>The following metrics are useful for monitoring performance for your DB instance:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p><code class="code">DiskQueueDepth</code> – The number of I/O requests in the queue waiting to be serviced. These are I/O requests that have been submitted by the application but have not been sent to the device because the device is busy servicing other I/O requests. Time spent waiting in the queue is a component of latency and service time (not available as a metric). This metric is reported as the average queue depth for a given time interval. Amazon RDS reports queue depth at 1-minute intervals. Typical values for queue depth range from zero to several hundred.</p> </li><li class="listitem"> <p><code class="code">EBSByteBalance%</code> – The percentage of throughput credits remaining in the burst bucket of your RDS database. This metric is available for basic monitoring only. The metric value is based on the throughput of all volumes, including the root volume, rather than on only those volumes containing database files.</p> <p>When this metric approaches zero, it means that your DB instance is running out of computing capacity. If this happens regularly, consider upgrading to a larger instance class size, for example from db.r6g.large to db.r6g.xlarge. For more information, see <a href="#other-factors-instance">DB instance class</a>.</p> </li><li class="listitem"> <p><code class="code">ReadIOPS</code> and <code class="code">WriteIOPS</code> – The number of I/O operations completed each second. This metric is reported as the average IOPS for a given time interval. Amazon RDS reports read and write IOPS separately at 1-minute intervals. <code class="code">TotalIOPS</code> is the sum of the read and write IOPS. Typical values for IOPS range from zero to tens of thousands per second.</p> <p>If your <code class="code">TotalIOPS</code> values regularly approach the Provisioned IOPS value that you have set for your DB instance, then consider increasing the Provisioned IOPS (io1, io2 Block Express, and gp3 storage types).</p> <p>Measured IOPS values are independent of the size of the individual I/O operation. This means that when you measure I/O performance, make sure to look at the throughput of the instance, not simply the number of I/O operations.</p> </li><li class="listitem"> <p><code class="code">ReadLatency</code> and <code class="code">WriteLatency</code> – The elapsed time between the submission of an I/O request and its completion. This metric is reported as the average latency for a given time interval. Amazon RDS reports read and write latency separately at 1-minute intervals. Typical values for latency are in milliseconds (ms).</p> </li><li class="listitem"> <p><code class="code">ReadThroughput</code> and <code class="code">WriteThroughput</code> – The number of bytes each second that are transferred to or from disk. This metric is reported as the average throughput for a given time interval. Amazon RDS reports read and write throughput separately at 1-minute intervals using units of bytes per second (B/s). Typical values for throughput range from zero to the I/O channel's maximum bandwidth.</p> <p>If your throughput values regularly approach the maximum throughput for your DB instance, then consider provisioning more storage throughput if you're using the gp3 storage type.</p> </li></ul></div> <h2 id="CHAP_Storage.Other.Factors">Factors that affect database performance</h2> <p>System activities, database workload, and DB instance class can affect database performance.</p> <h3 id="other-factors-system">System activities</h3> <p>The following system-related activities consume I/O capacity and might reduce DB instance performance while in progress:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>Multi-AZ standby creation</p> </li><li class="listitem"> <p>Read replica creation</p> </li><li class="listitem"> <p>Changing storage types</p> </li></ul></div> <h3 id="other-factors-workload">Database workload</h3> <p>In some cases, your database or application design results in concurrency issues, locking, or other forms of database contention. In these cases, you might not be able to use all the provisioned bandwidth directly. In addition, you might encounter the following workload-related situations:</p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>The throughput limit of the underlying instance type is reached.</p> </li><li class="listitem"> <p>Queue depth is consistently less than 1 because your application isn't driving enough I/O operations.</p> </li><li class="listitem"> <p>You experience query contention in the database even though some I/O capacity is unused.</p> </li></ul></div> <p>In some cases, there isn't a system resource that is at or near a limit, and adding threads doesn't increase the database transaction rate. In such cases, the bottleneck is most likely contention in the database. The most common forms are row lock and index page lock contention, but there are many other possibilities. If this is your situation, seek the advice of a database performance tuning expert.</p> <h3 id="other-factors-instance">DB instance class</h3> <p>To get the most performance out of your Amazon RDS DB instance, choose a current generation instance type with enough bandwidth to support your storage type. For example, you can choose Amazon EBS–optimized instances and instances with 10-gigabit network connectivity.</p> <div class="awsdocs-note awsdocs-important"><div class="awsdocs-note-title"><awsui-icon name="status-warning" variant="error"></awsui-icon><h6>Important</h6></div><div class="awsdocs-note-text"><p>Depending on the instance class you're using, you might see lower IOPS performance than the maximum that you can provision with RDS. For specific information on IOPS performance for DB instance classes, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html">Amazon EBS–optimized instances</a> in the <em>Amazon EC2 User Guide</em>. We recommend that you determine the maximum IOPS for the instance class before setting a Provisioned IOPS value for your DB instance.</p></div></div> <p>We encourage you to use the latest generation of instances to get the best performance. Previous generation DB instances can also have lower maximum storage.</p> <p>Some older 32-bit file systems might have lower storage capacities. To determine the storage capacity of your DB instance, you can use the <a href="https://docs.aws.amazon.com/cli/latest/reference/rds/describe-valid-db-instance-modifications.html">describe-valid-db-instance-modifications</a> AWS CLI command.</p> <p>The following list shows the maximum storage that most DB instance classes can scale to for each database engine: </p> <div class="itemizedlist"> <ul class="itemizedlist"><li class="listitem"> <p>Db2 – 64 TiB</p> </li><li class="listitem"> <p>MariaDB – 64 TiB</p> </li><li class="listitem"> <p>Microsoft SQL Server – 64 TiB</p> </li><li class="listitem"> <p>MySQL – 64 TiB</p> </li><li class="listitem"> <p>Oracle – 64 TiB</p> </li><li class="listitem"> <p>PostgreSQL – 64 TiB</p> </li></ul></div> <p>The following table shows some exceptions for maximum storage (in TiB). All RDS for Microsoft SQL Server DB instances apart from io2 Block Express storage have a maximum storage of 16 TiB, so there are no entries for SQL Server. </p> <div class="table-container"><div class="table-contents"><table id="w1411aab5c41c29b9c17"><thead> <tr> <th>Instance class</th> <th>Db2</th> <th>MariaDB</th> <th>MySQL</th> <th>Oracle</th> <th>PostgreSQL</th> </tr> </thead> <tr> <td colspan="6" tabindex="-1"><b>db.m3 – standard instance classes</b></td> </tr> <tr> <td colspan="6" tabindex="-1"><b>db.t4g – burstable-performance instance classes</b></td> </tr> <tr> <td tabindex="-1">db.t4g.medium</td> <td tabindex="-1">N/A</td> <td tabindex="-1">16</td> <td tabindex="-1">16</td> <td tabindex="-1">N/A</td> <td tabindex="-1">32</td> </tr> <tr> <td tabindex="-1">db.t4g.small</td> <td tabindex="-1">N/A</td> <td tabindex="-1">16</td> <td tabindex="-1">16</td> <td tabindex="-1">N/A</td> <td tabindex="-1">16</td> </tr> <tr> <td tabindex="-1">db.t4g.micro</td> <td tabindex="-1">N/A</td> <td tabindex="-1">6</td> <td tabindex="-1">6</td> <td tabindex="-1">N/A</td> <td tabindex="-1">6</td> </tr> <tr> <td colspan="6" tabindex="-1"><b>db.t3 – burstable-performance instance classes</b></td> </tr> <tr> <td tabindex="-1">db.t3.medium</td> <td tabindex="-1">32</td> <td tabindex="-1">16</td> <td tabindex="-1">16</td> <td tabindex="-1">32</td> <td tabindex="-1">32</td> </tr> <tr> <td tabindex="-1">db.t3.small</td> <td tabindex="-1">32</td> <td tabindex="-1">16</td> <td tabindex="-1">16</td> <td tabindex="-1">32</td> <td tabindex="-1">16</td> </tr> <tr> <td tabindex="-1">db.t3.micro</td> <td tabindex="-1">N/A</td> <td tabindex="-1">6</td> <td tabindex="-1">6</td> <td tabindex="-1">32</td> <td tabindex="-1">6</td> </tr> <tr> <td colspan="6" tabindex="-1"><b>db.t2 – burstable-performance instance classes</b></td> </tr> </table></div></div> <p>For more details about all instance classes supported, see <a href="https://aws.amazon.com/rds/previous-generation/" rel="noopener noreferrer" target="_blank"><span>Previous generation DB instances</span><awsui-icon class="awsdocs-link-icon" name="external"></awsui-icon></a>.</p> <awsdocs-copyright class="copyright-print"></awsdocs-copyright><awsdocs-thumb-feedback right-edge="{{$ctrl.thumbFeedbackRightEdge}}"></awsdocs-thumb-feedback></div><noscript><div><div><div><div id="js_error_message"><p><img src="https://d1ge0kk1l5kms0.cloudfront.net/images/G/01/webservices/console/warning.png" alt="Warning" /> <strong>Javascript is disabled or is unavailable in your browser.</strong></p><p>To use the Amazon Web Services Documentation, Javascript must be enabled. Please refer to your browser's Help pages for instructions.</p></div></div></div></div></noscript><div id="main-col-footer" class="awsui-util-font-size-0"><div id="doc-conventions"><a target="_top" href="/general/latest/gr/docconventions.html">Document Conventions</a></div><div class="prev-next"><div id="previous" class="prev-link" accesskey="p" href="./Concepts.DBInstanceClass.Summary.html">Hardware specifications</div><div id="next" class="next-link" accesskey="n" href="./Concepts.RegionsAndAvailabilityZones.html">Regions, Availability Zones, and Local Zones</div></div></div><awsdocs-page-utilities></awsdocs-page-utilities></div><div id="quick-feedback-yes" style="display: none;"><div class="title">Did this page help you? - Yes</div><div class="content"><p>Thanks for letting us know we're doing a good job!</p><p>If you've got a moment, please tell us what we did right so we can do more of it.</p><p><awsui-button id="fblink" rel="noopener noreferrer" target="_blank" text="Feedback" click="linkClick($event)" href="https://docs.aws.amazon.com/forms/aws-doc-feedback?hidden_service_name=RDS&amp;topic_url=https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/CHAP_Storage.html"></awsui-button></p></div></div><div id="quick-feedback-no" style="display: none;"><div class="title">Did this page help you? - No</div><div class="content"><p>Thanks for letting us know this page needs work. We're sorry we let you down.</p><p>If you've got a moment, please tell us how we can make the documentation better.</p><p><awsui-button id="fblink" rel="noopener noreferrer" target="_blank" text="Feedback" click="linkClick($event)" href="https://docs.aws.amazon.com/forms/aws-doc-feedback?hidden_service_name=RDS&amp;topic_url=https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/CHAP_Storage.html"></awsui-button></p></div></div></div></body></div></awsdocs-view><div class="page-loading-indicator" id="page-loading-indicator"><awsui-spinner size="large"></awsui-spinner></div></div><div id="tools-panel" dom-region="tools"><awsdocs-tools-panel id="awsdocs-tools-panel"></awsdocs-tools-panel></div></awsui-app-layout><awsdocs-cookie-banner class="doc-cookie-banner"></awsdocs-cookie-banner></div></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10