Configuration analysis for database environments in Workload Factory
Workload Factory for Databases analyzes database configurations regularly to determine if there are any issues with Microsoft SQL Server and Oracle deployments on Amazon FSx for NetApp ONTAP storage. When issues are found, Workload Factory shows you what the issues are and explains what needs to change so that your database configurations achieve peak performance, cost efficiency, and compliance with best practices.
Workload Factory provides best practices and recommendations for well-architected database workloads. The well-architected analysis assesses Microsoft SQL Server and Oracle Database configurations and settings related to storage, compute, application, resiliency, and cloning.
How it works
Workload Factory analyzes your workloads running on Amazon FSx for NetApp ONTAP file systems deployments daily. The analysis provides well-architected status, insights, and recommendations.
After the daily analysis completes, configurations appear as "optimized" or "not optimized" in the Well-architected dashboard for the deployment. You'll find the total optimization score, configuration issues by category, and a list of configuration issues and recommendations. You can review the recommendations for configuration issues. Some issues can be fixed automatically by Workload Factory, while others require manual intervention. In this case, Workload Factory provides detailed instructions to help you implement the recommended changes.
You can dismiss the analysis of configurations that do not apply to your environments. This avoids unnecessary alerts and inaccurate optimization results.
You can also create custom rules in plain language to validate your environments against your organization's standards and NetApp best practices. Test rules with a dry run, then schedule them to run across your environments. Learn more about custom rules.
Why it matters
Workload Factory applies best practices to large storage, database, and VMware environments by combining ongoing assessment with recommendation insights and remediation. Automated fixes applied in the Workload Factory console reduce human error, ensure uniform management, and preserve performance and reliability across your workload infrastructures.
Options for analyzing your database environment
Workload Factory provides the following options for analyzing your database environment:
-
One-time assessment: Perform a one-time assessment to find out the well-architected status of your Microsoft SQL Server instances or Oracle databases without storing credentials or registering resources.
For the one-time assessment, you only need to provide credentials once for the Microsoft SQL Server instances or Oracle databases you want to analyze.
-
Continuous assessment: Workload Factory analyzes your database environment regularly, provides ongoing recommendations for optimizing your configurations, and automatically fixes issues.
For continuous assessment, you need to register your resources, associate a link, and grant permissions in your AWS account.
Microsoft SQL Server best practices
The following best practices and recommendations apply to Microsoft SQL Server workloads.
Storage
Use the primary SSD tier for performance-sensitive SQL workloads.
Details
Use the primary SSD tier for FSx for ONTAP volumes for optimal performance. The capacity pool tier might reduce performance and increase latency. The primary SSD tier is designed for high-performance workloads, while the capacity pool tier is optimized for cost efficiency and might not meet the performance requirements of SQL Server workloads.
Keep enough free capacity above total volume size.
Details
Maintain enough file system capacity above your total volume size. Too little free space causes performance issues; too much wastes storage and increases costs.
Size and monitor log drives to avoid rollbacks and outages.
Details
Size and monitor your SQL Server log drive to prevent transaction rollbacks, database unavailability, data corruption, and performance issues caused by a full log drive.
Size TempDB to avoid bottlenecks and timeouts.
Details
Size and monitor TempDB to maintain performance and stability. Too little TempDB space can cause query slowdowns, application timeouts, and system crashes.
Separate .mdf and .ldf paths.
Details
Separate data and log files onto different drives to improve parallel I/O, backup flexibility, and restore behavior. We recommend separating data and log LUN paths into different volumes for smaller databases.
Use a dedicated drive.
Details
Place TempDB on a dedicated drive to avoid I/O contention and improve SQL Server performance and stability.
Allocate storage as needed.
Details
Configure thin provisioning for FSx for ONTAP volumes to make better use of storage and reduce costs. Thin provisioning lets you allocate storage as needed instead of reserving all capacity at once.
Grow volumes automatically.
Details
Turn on autosize and set the mode to grow so volumes increase automatically before they become full and read-only.
Configure block device space settings for LUNs used by SQL Server.
Details
Configure block device space settings for LUNs used by Microsoft SQL server instances to prevent write failures and improve space efficiency on FSx for ONTAP.
Keep space for active data.
Details
Set snapshot copy reserve to 0% and enable snapshot autodelete to protect space for active data.
Expand the volume before deleting snapshot copies.
Details
When space runs low, expand the volume before deleting snapshot copies. Expanding the volume prevents "volume full" errors, reduces write failures, and preserves snapshot recovery points.
Tier snapshot data using the snapshot-only tiering policy.
Details
Use the snapshot-only tiering policy, which moves only snapshot data to the capacity tier while keeping active data on the SSD tier. This approach preserves low-latency performance for SQL workloads while reducing storage costs. Tier snapshot data after a 7-day cooling period.
Use deduplication, compression, and compaction.
Details
Enable deduplication, compression, and compaction to reduce storage use and cost while maintaining performance.
Match ONTAP LUN OS type to host partitioning.
Details
Match the ONTAP LUN Operating System value to the host partitioning scheme to maintain correct I/O alignment.
Configure Multipath I/O (MPIO) policy, sessions, status, and timeout settings.
Details
Configure Multipath I/O (MPIO) for resiliency and throughput. Use five MPIO sessions per target interface for SQL Server on iSCSI LUNs, monitor path status, and set host timeout to 60 seconds.
Set to 64K.
Details
Set NTFS allocation unit size to 64K to improve disk efficiency and reduce fragmentation for SQL Server workloads.
Disable scheduled snapshots.
Details
Disable scheduled snapshots for FSx for ONTAP volumes used by Microsoft SQL Server. Instead, manage snapshots externally using tools such as NetApp SnapCenter, which create application-consistent backups and help prevent data corruption during restore operations.
Compute
Match EC2 instance size to workload demand.
Details
Rightsize your SQL Server EC2 instance based on workload demand. Increase size when under-provisioned and reduce size when over-provisioned to balance cost and performance.
Apply current OS patches.
Details
Apply the latest operating system patches to improve security and reliability.
Configure Receive Side Scaling (RSS).
Details
Configure Receive Side Scaling (RSS) to distribute network processing across CPUs to improve network performance. Validate settings before production rollout.
Align Maximum Transmission Unit (MTU) across host and storage paths.
Details
Align EC2 Maximum Transmission Unit (MTU) settings with FSx for ONTAP paths to prevent fragmentation and maintain stable throughput.
Application
Review license usage for paid features.
Details
Review SQL Server license usage at the host level. If paid features are not in use, the license is not optimized and may increase cost.
Apply latest SQL Server patches.
Details
Apply the latest SQL Server patches to improve security and system reliability.
Use workload-tested values.
Details
Configure MAXDOP to optimize query performance. Values of 4, 8, or 16 typically work well. Test your workload and monitor for parallelism wait types such as CXPACKET.
Resiliency
Use application-consistent snapshots with NetApp SnapCenter.
Details
Use application-consistent snapshots with NetApp SnapCenter to take accurate, reliable snapshots of your volume data at a specific moment in time. SnapCenter makes backups easier and helps you restore data quickly, reducing downtime and protecting critical workloads.
Protect against regional outages.
Details
Enable cross-region replication (CRR) to improve data availability and disaster recovery in your SQL Server environment. CRR helps protect against regional outages and ensures business continuity by replicating data across different locations.
Configure FSx for ONTAP backups or AWS Backup.
Details
Configure FSx for ONTAP backups or AWS Backup to meet retention and compliance requirements while avoiding duplicate backup workflows.
Configure quorum for failover cluster instances.
Details
Configure quorum correctly for SQL Server Failover Cluster Instances so the cluster can tolerate expected node failures.
Keep drive letters consistent across nodes.
Details
Use the same drive letters on every node in your SQL Server high availability setup. This makes management easier and helps failover work correctly.
Tune heartbeat for stable failover behavior.
Details
Tune heartbeat settings to avoid unnecessary failovers while still detecting real failures quickly.
Make sure both nodes can access shared iSCSI LUNs.
Details
All shared disks (iSCSI LUNs) must be accessible from both nodes in the FCI deployment model so failover can work.
Validate service account and startup dependencies.
Details
Validate service account permissions, startup type, and dependencies for reliable high availability behavior.
Cloning
Remove old clones regularly.
Details
Regularly remove outdated clones to reduce storage cost and operational clutter. Old and unused clones cause high costs.
Oracle best practices
The following best practices and recommendations apply to Oracle workloads.
Storage
Keep enough free capacity above total volume size.
Details
Maintain enough file system capacity above your total volume size. Too little free space causes performance issues; too much wastes storage and increases costs.
Allocate storage as needed.
Details
Configure thin provisioning for FSx for ONTAP volumes to make better use of storage and reduce costs. Thin provisioning lets you allocate storage as needed instead of reserving all capacity at once.
Grow volumes automatically.
Details
Turn on autosize and set mode to grow so volumes increase automatically before they become full and read-only.
Configure block device space settings for LUNs used by SQL Server.
Details
Configure block device space settings for LUNs used by Oracle databases to prevent write failures and improve space efficiency on FSx for ONTAP.
Keep space for active data.
Details
Set snapshot copy reserve to 0% and enable snapshot autodelete to protect space for active data.
Expand the volume before deleting snapshot copies.
Details
When space runs low, expand the volume before deleting snapshot copies. Expanding the volume prevents "volume full" errors, reduces write failures, and preserves snapshot recovery points.
Tier snapshot data using the snapshot-only tiering policy.
Details
Use the snapshot-only tiering policy, which moves only snapshot data to the capacity tier while keeping active data on the SSD tier. This approach preserves low-latency performance for SQL workloads while reducing storage costs. Tier snapshot data after a 7-day cooling period.
Use deduplication, compression, and compaction.
Details
Enable deduplication, compression, and compaction to reduce storage use and cost while maintaining performance.
Set swap based on RAM.
Details
Set swap space based on the amount of RAM so the system can handle memory pressure and avoid slowdowns or crashes.
Use a dedicated volume for each type of Oracle file to isolate I/O patterns and improve performance.
Details
Place archive logs, data files, control files, redo logs, and temp files on separate drives to isolate I/O patterns and improve resiliency. Keep redundant copies on separate volumes where required.
Use a dedicated volume.
Details
Place Oracle binaries on a dedicated volume to reduce I/O contention. This separation simplifies software updates and minimizes the risk of accidental modifications or corruption.
Disable local scheduled snapshots.
Details
Disable scheduled snapshots for FSx for ONTAP volumes used by Oracle to save space and lower costs. Instead, manage snapshots externally using tools such as NetApp SnapCenter, which create application-consistent backups and help prevent data corruption during restore operations.
Disable for dNFS.
Details
Disable the ONTAP nfs-rootonly parameter for dNFS. nfs-rootonly restricts NFS connections to privileged ports (<1024). Because dNFS processes in NFSv4+ do not run as root and use higher ports, disabling this parameter allows necessary connections.
Include superuser and setuid permissions in the dedicated export policy for Oracle binaries.
Details
Make sure that if Oracle binaries are located on an NFS share, the export policy includes superuser and setuid permissions. Superuser (root) access allows NFS clients to map as root, needed for binary execution.
Set up Oracle Automatic Storage Management (ASM) for iSCSI-based storage running on FSx for ONTAP.
Details
Use Oracle Automatic Storage Management (ASM) for iSCSI-based storage running on FSx for ONTAP to optimize performance, simplify storage management, and enhance scalability for Oracle Database deployments.
-
ASM data disk group, ASM logs disk group, ASM FRA disk group, and ASM archive disk group LUNs
Distribute LUNs across Automatic Storage Management (ASM) disk group resources.
Details
Distribute LUNs across Automatic Storage Management (ASM) data, redo log, and archive log disk groups for optimal performance and redundancy.
-
ASM external redundancy
Configure Oracle ASM disk groups with EXTERNAL redundancy.
Details
Configure Oracle ASM disk groups with EXTERNAL redundancy for FSx for ONTAP iSCSI LUNs to leverage FSx for ONTAP's built-in high availability, optimize storage efficiency, and reduce costs by avoiding Oracle-level data mirroring.
-
ASM filter driver and ASMLib logical block size alignment
Configure Oracle ASM Filter Driver (AFD) and ASMLib to use the logical block size of the underlying FSx for ONTAP storage.
Details
Configure the Oracle ASM Filter Driver (AFD) and ASMLib in the ASMLib configuration file to use the logical block size of the underlying FSx for ONTAP storage. This ensures that AFD and ASMLib aligns I/O operations with the storage's block size, optimizing performance by minimizing latency and reducing unnecessary I/O overhead.
Set to 128 for NFS-based Oracle workloads.
Details
Configure the kernel parameters for the TCP slot table to 128 for Oracle workloads running on NFS. This configuration enables more concurrent I/O operations, reducing latency in high-throughput scenarios such as Oracle data file access. Kernel parameters govern the maximum number of outstanding NFS requests over TCP, acting like queue depth in Fibre Channel setups. The default Linux values, typically set at 16, do not support optimal database performance.
Use NFS mount options that optimize performance for database files.
Details
Use optimized NFS mount options for database files. Key parameters include rw for read/write access, bg for background mounting, hard for indefinite retries on failures, and proto=tcp for reliable delivery. The rsize and wsize values of 262144 improve large I/O operations, enhancing throughput, while nointr doesn't interrupt long-running tasks. This configuration improves database performance and resilience, particularly in high-throughput environments.
Use NFS mount options that optimize performance for the ADR home directory.
Details
Use optimized NFS mount options for the Automatic Diagnostic Repository (ADR) home, or root directory. The ADR home stores logs and traces, which benefit from similar reliability options as core database files but don't require the nointr mount option because operations are less interrupt-sensitive.
Match NFSv4 domain names between the host and NFS server.
Details
Match NFSv4 domain names between the host (/etc/idmapd.conf or hostname -d) and NFS server (v4-id-domain in ONTAP).
Do not disable host caching in standalone deployments.
Details
Omit NFS mount options that disable host caching—such as, actimeo=0 and noac—in standalone Oracle deployments to improve efficiency and reliability. These options apply to clustered environments to ensure cache consistency, but in single-instance environments, they unnecessarily bypass caching and can significantly reduce performance.
Enable dNFS.
Details
Enable Direct NFS (dNFS) in your Oracle environment to improve NFS storage performance and reliability.
Avoid round-robin name resolution.
Details
Avoid the use of Direct NFS (dNFS) with any type of round-robin name resolution, including DNS, DDNS, NIS, or any other method. This includes the DNS load balancing feature available in ONTAP. Consistent IP address resolution maintains database stability and prevents potential crashes or data corruption.
Validate oranfstab content.
Details
Check and update the oranfstab file content to ensure proper Direct NFS (dNFS) usage. The oranfstab file is essential for configuring advanced dNFS features such as multipathing and specific NFS options. Correct configuration improves the efficiency of data access and management.
Use nosharecache for specific multi-mount cases.
Details
Configure the nosharecache mount option for environments where Direct NFS (dNFS) is enabled, and a source volume is mounted more than once on a single server with nested NFS mounts. This configuration prevents cache sharing between mounts, ensuring data consistency and optimal performance.
Compute
Apply current patches.
Details
Apply the latest operating system patches to improve security and reliability.
Disable Transparent Huge Pages (THP).
Details
Disable Transparent Huge Pages (THP) on database hosts running Oracle databases to prevent potential performance degradation and improve memory management.
Enable Transmission Control Protocol (TCP) advanced options.
Details
Enable TCP timestamps, SACK, and window scaling for best network performance and reliability.
Set filesystemio_options = setall.
Details
Set filesystemio_options = setall for optimal I/O performance. Adjust the system global area (SGA) size if needed when moving away from buffered I/O.
Remove the db_file_multiblock_read_count parameter.
Details
Remove db_file_multiblock_read_count parameter from the text-based FILE init.ora or server-managed binary SPFILE (spfile<SID>.ora) for Oracle databases to prevent performance issues and allow Oracle to manage this setting automatically.
Apply current CPU updates.
Details
Apply the latest Oracle Critical Patch Updates to address security vulnerabilities and maintain the integrity of your database environment. Regularly review and apply patches to protect against potential threats and ensure compliance with security best practices.
Resiliency
Use application-consistent snapshots with NetApp SnapCenter.
Details
Use application-consistent snapshots with NetApp SnapCenter to take accurate, reliable snapshots of your volume data at a specific moment in time. SnapCenter makes backups easier and helps you restore data quickly, reducing downtime and protecting critical workloads.
Protect against regional outages.
Details
Enable cross-region replication (CRR) to improve data availability and disaster recovery for your Oracle databases. CRR helps protect against regional outages and ensures business continuity by replicating data across different locations.
Configure FSx for ONTAP backups or AWS Backup.
Details
Configure FSx for ONTAP backups or AWS Backup to meet retention and compliance requirements while avoiding duplicate backup workflows.
Cloning
Remove old clones regularly.
Details
Regularly remove outdated clones to reduce storage cost and operational clutter. Old and unused clones cause high costs.