Recommendations from Amazon RDS reference
Amazon RDS generates recommendations for a resource when the resource is created or modified. You can find examples of recommendations from Amazon RDS in the following table.
Type | Description | Recommendation | Downtime required | Additional information |
---|---|---|---|---|
Magnetic volume is in use |
Your DB instances are using magnetic storage. Magnetic storage isn't recommended for most of the DB instances. Choose a different storage type: General Purpose (SSD) or Provisioned IOPS. |
Choose a different storage type: General Purpose (SSD) or Provisioned IOPS. |
Yes |
Previous generation volumes in the Amazon EC2 documentation. |
Resource Automated backups is turned off |
Automated backups aren't turned on for your DB instances. Automated backups are recommended because they enable point-in-time recovery of your DB instances. |
Turn on automated backups with a retention period of up to 14 days. |
Yes |
Demystifying Amazon RDS backup storage costs |
Engine minor version upgrade is required |
Your database resources aren't running the latest minor DB engine version. The latest minor version contains the latest security fixes and other improvements. |
Upgrade to latest engine version. |
Yes |
|
Enhanced Monitoring is turned off |
Your database resources don't have Enhanced Monitoring turned on. Enhanced Monitoring provides real-time operating system metrics for monitoring and troubleshooting. |
Turn on Enhanced Monitoring. |
No |
|
Storage encryption is turned off |
Amazon RDS supports encryption at rest for all the database engines by using the keys that you manage in AWS Key Management Service (AWS KMS). On an active DB instance with Amazon RDS encryption, the data stored at rest in the storage is encrypted, similar to automated backups, read replicas, and snapshots. If encryption isn't turned on while creating a DB instance, you will need to create and restore an encrypted copy of the decrypted snapshot of the DB instance before you turn on the encryption. |
Turn on encryption of data at rest for your DB instance. |
Yes |
|
Performance Insights is turned off |
Performance Insights monitors your DB instance load to help you analyze and resolve database performance issues. We recommend that you turn on Performance Insights. |
Turn on Performance Insights. |
No |
|
DB instances have storage autoscaling turned off |
Storage autoscaling isn't turned on for your DB instance. When the database workload increases, RDS storage autoscaling automatically scales the storage capacity with zero downtime. |
Turn on Amazon RDS storage autoscaling with a specified maximum storage threshold |
No |
Managing capacity automatically with Amazon RDS storage autoscaling |
RDS resources major versions update is required |
Databases with the current major version for the DB engine won't be supported. We recommend that you upgrade to the latest major version which includes new functionality and enhancements. |
Upgrade to the latest major version for the DB engine. |
Yes |
Upgrading a DB instance engine version Using Amazon RDS Blue/Green Deployments for database updates |
RDS resources instance class update is required |
Your DB instance is running an earlier generation DB instance class. We have replaced DB instance classes from an earlier generation with DB instance classes with better cost, performance, or both. We recommend that you run your DB instance with a DB instance class from a newer generation. |
Upgrade the DB instance class. |
Yes |
|
RDS resources using end of support engine edition under license-included |
We recommend that you upgrade the major version to the latest engine version supported by Amazon RDS to continue with the current license support. The engine version of your database won't be supported with the current license. |
We recommend that you upgrade your database to the latest supported version in Amazon RDS to continue using the licensed model. |
Yes |
|
DB instances not using Multi-AZ deployment |
We recommend that you use Multi-AZ deployment. The Multi-AZ deployments enhance the availability and durability of the DB instance. |
Set up Multi-AZ for the impacted DB instances |
No Downtime doesn't occur during this change. However, there is a possible performance impact. For more information, see Converting a DB instance to a Multi-AZ deployment for Amazon RDS |
|
DB memory parameters are diverging from default |
The memory parameters of the DB instances are significantly different from the default values. These settings can impact performance and cause errors. We recommend that you reset the custom memory parameters for the DB instance to their default values in the DB parameter group. |
Reset the memory parameters to their default values. |
No |
Best practices for configuring performance parameters for Amazon RDS for MySQL |
|
Change buffering allows a MySQL DB instance to defer a few writes, which are required to maintain secondary indexes. This feature was useful in environments with slow disks. The change buffering configuration improved the DB performance slightly but caused a delay in crash recovery and long shutdown times during upgrade. |
Set |
No |
Best practices for configuring performance parameters for Amazon RDS for MySQL |
Query cache parameter is turned on |
When changes require that your query cache is purged, your DB instance will appear to stall. Most workloads don't benefit from a query cache. The query cache was removed from MySQL version 8.0. We recommend that you set the query_cache_type parameter to 0. |
Set the |
Yes |
Best practices for configuring performance parameters for Amazon RDS for MySQL |
|
When |
Set the |
No |
|
Parameter groups not using huge pages |
Large pages can increase database scalability, but your DB instance isn't using large pages. We recommend that you set
the |
Set the |
Yes |
|
|
The autovacuum parameter is turned off for your DB instances. Turning autovacuum off increases the table and index bloat and impacts the performance. We recommend that you turn on autovacuum in your DB parameter groups. |
Turn on the autovacuum parameter in your DB parameter groups. |
No |
Understanding autovacuum in Amazon RDS for PostgreSQL environments |
|
When We recommend that you turn on the |
Turn on |
Yes |
Amazon Aurora PostgreSQL parameters: Replication, security, and logging |
|
When the We recommend that you set |
Set |
No |
|
|
The query planner or optimizer can't use the index-only scan plan type when it is turned off. We recommend that you set the |
Set the |
No |
|
|
The query planner or optimizer can't use the index scan plan type when it is turned off. We recommend that you set the |
Set the |
No |
|
|
The value of the We recommend that you set the |
Set the |
No |
Best practices for configuring performance parameters for Amazon RDS for MySQL |
|
The synchronization of the binary log to disk isn't enforced before the transaction commits are acknowledged in your DB instance. We recommend that you set the |
Set the |
No |
Best practices for configuring replication parameters for Amazon RDS for MySQL |
|
Your DB instance isn't configured to persist the InnoDB statistics to the disk. When the statistics aren't stored, they are recalculated each time the instance restarts and the table accessed. This leads to variations in the query execution plan. You can modify the value of this global parameter at the table level. We recommend that you set the |
Set the |
No |
Best practices for configuring performance parameters for Amazon RDS for MySQL |
|
The Your DB instance has a low value for the maximum number of files InnoDB can open at one time. We recommend that you set the |
Set the |
Yes |
|
|
Your DB instance has a low value for the maximum number of simultaneous connections for each database account. We recommend setting the |
Increase the value of the |
Yes |
|
Read Replicas are open in writable mode |
Your DB instance has a read replica in writable mode, which allows updates from clients. We recommend that you set the the |
Set the |
No |
Best practices for configuring replication parameters for Amazon RDS for MySQL |
|
Your DB instance encounters a known issue: A table created in a MySQL version lower than 8.0.26 with the
We recommend that you set the |
Set the |
No |
|
|
The general logging is turned on for your DB instance. This setting is useful while troubleshooting the database issues. However, turning on general logging increases the amount of I/O operations and allocated storage space, which might result in contention and performance degradation. Check your requirements for general logging usage. We recommend that you set the |
Check your requirements for general logging usage. If it isn't mandatory, we recommend that you to set the |
No |
|
RDS instance under-provisioned for system memory capacity |
We recommend that you tune your queries to use lesser memory or use a DB instance type with higher allocated memory. When the instance is running low on memory, then the database performance is impacted. |
Use a DB instance with higher memory capacity |
Yes |
Scaling Your Amazon RDS Instance Vertically and Horizontally |
RDS instance under-provisioned for system CPU capacity |
We recommend that you tune your queries to use less CPU or modify your DB instance to use a DB instance class with higher allocated vCPUs. Database performance might decline when a DB instance is running low on CPU. |
Use a DB instance with higher CPU capacity |
Yes |
Scaling Your Amazon RDS Instance Vertically and Horizontally |
RDS resources are not utilizing connection pooling correctly |
We recommend that you enable Amazon RDS Proxy to efficiently pool and share existing database connections. If you are already using a proxy for your database, configure it correctly to improve connection pooling and load balancing across multiple DB instances. RDS Proxy can help reduce the risk of connection exhaustion and downtime while improving availability and scalability. |
Enable RDS Proxy or modify your existing proxy configuration |
No |
Scaling Your Amazon RDS Instance Vertically and Horizontally |
RDS instances are creating excessive temporary objects |
We recommend that you tune your workload to prevent creating excessive temporary objects, or switch to RDS instance classes supporting optimized reads. RDS Optimized Reads improves database performance for workloads involving a large number of temporary objects and/or large temporary objects. Evaluate your workload to determine if using an instance with RDS Optimized Reads benefits your database workload. |
Use a DB instance type with RDS Optimized Reads |
Yes |
Improving query performance for RDS for MySQL with Amazon RDS Optimized Reads Improving query performance for RDS for MariaDB with Amazon RDS Optimized Reads Improving query performance for RDS for PostgreSQL with Amazon RDS Optimized Reads |
RDS instances are under-provisioned for system IOPS capacity |
We recommend tuning the database workload to reduce IOPS or scale up the DB instance to a type with a higher default IOPS limit. The current DB instance can't support the Provisioned IOPS, or the database workload has high IOPS utilization. |
Use a DB instance type with higher default IOPS limits |
Yes |
|
RDS instances have under-provisioned Amazon EBS volumes |
We recommend tuning the database workload to reduce IOPS or increase the Provisioned IOPS for the database. When IOPS utilization approaches the Provisioned IOPS, database performance might decline. |
Provision more IOPS for the DB instance |
Yes |
|
RDS instances are under-provisioned for throughput capacity |
We recommend tuning the database workload to reduce throughput or increase the provisioned throughput for the database. When throughput utilization approaches the provisioned throughput, database performance might be impacted. |
Provision more throughput for the DB instance |
Yes |
|
RDS instances are under-provisioned for EBS I/O |
We recommend tuning the database workload to reduce I/O operations or modifying the DB instance to use Amazon RDS io2 Block Express volumes which are designed for database workloads that require high performance, high throughput, and low latency. With the current workload, the database might not be able to process I/O operations at the required rate which can lead to performance degradation. |
Use Amazon RDS io2 Block Express volumes for the RDS instance |
No |
Amazon RDS DB instance storage Amazon CloudWatch metrics for Amazon RDS Provisioned IOPS SSD volumes in the Amazon EBS User Guide |