Considerations on Performance Classes in SAP HANA Cloud

This blog explains performance classes and helps you decide which performance class is best for your SAP HANA database based on workload and cost. Performance classes are relevant for standalone SAP HANA Cloud instances and for solutions like SAP Datasphere, where SAP HANA Cloud instances are provisioned as an underlying database when the application is provisioned.

1. About performance classes

Performance classes govern the sizing of SAP HANA database instances. A performance class groups all available configurations (SAP HANA database sizes) with a similar ratio between compute and memory resources. The core-to-memory ratio describes how many GB of memory are allocated per virtual CPU (vCPU).

SAP offers four performance classes, which are shown in Table 1. The performance classes Memory and High Memory allow you to allocate more GB of memory per vCPU than Compute and High Compute.

Performance Class

Core-to-memory ratio

Examples of instance size options
 {vCPUs, GB}

High Compute

1:4

{8, 32}, {9, 36}, {10, 40}, …

Compute

1:8

{4, 32}, {5, 40}, {6, 48}, …

Memory (default)

1:13-16

{2, 32}, {3, 48}, {4, 64}, …

High Memory

1:20-30

{120, 3600}, {204, 5970}, {442, 9000}, …

Table 1: Available performance classes, the respective core-to-memory ratios, and examples of instance sizes

By selecting a performance class, you decide the core-to-memory ratio of the instance and gain access to all configurations characterized by that ratio. You can request a specific configuration by providing the actual size of the instance, especially the amount of memory needed to run your workload.

1.1. Benefit

Customers provision SAP HANA Cloud databases for many different purposes. Depending on the type of workload, the use case may require a higher or lower ratio between vCPUs and GB. Performance classes provide a flexible core-to-memory ratio and introduce more options for sizing. Choosing the right performance class helps you achieve optimal performance, efficient resource utilization, and the best TCO.

For example, a compute requirement of eight vCPUs can be implemented in multiple performance classes with different memory sizes and costs (see Table 2). If you need a small amount of memory, you can deploy the eight-vCPU instance in the performance class High Compute and achieve a better TCO than by choosing the performance class Memory, where you would pay more for potentially unused memory blocks.  

Performance Class

Memory(GB)

vCPUs

CUs/month

High Compute

32

8

 1,543

Compute

64

8

 2,128

Memory

128

8

 3,298

Table 2: Alternative configurations for eight vCPUs in different performance classes and estimated costs

1.2. How to set the performance class and the size of your instance

You set the performance class when you create the instance and can change it at any time later.

SAP HANA Cloud Central
In the provisioning wizard, you select the performance class and enter the memory size of your instance. The minimum disk space  is allocated automatically based on the specified amount of memory. Similarly, the number of vCPUs is set automatically as a function of the specified performance class and the memory size; you cannot enter the compute capacity manually in the UI.

CLI
When creating an SAP HANA database instance using the CLI, you provide values for the parameters memory, storage, and vcpu. The only mandatory parameter is memory. If vcpu is specified, the core-to-memory ratio is calculated based on your input, and this ratio determines the performance class. If vcpu is not provided, the default performance class Memory is selected, and the number of vCPUs is calculated automatically. Note that there is no dedicated parameter for the performance class.

1.3. How to choose the most suitable performance class for your workload

The optimal performance class provides a configuration (SAP HANA database size) that closely matches your resource needs.

If you can accurately estimate the required memory and compute resources, choosing the performance class is straightforward: use your values for memory and vCPU, calculate the core-to-memory ratio, and look for the performance class that provides the closest ratio.

Otherwise, you should at least estimate the required memory, since memory is the fundamental resource of an SAP HANA database. For help with memory sizing, refer to sap.com/sizing. Once you know the memory size, you should think about the expected workload before you select the performance class (and compute resources). The following considerations might help:

For many memory values, you have a choice of performance classes. For example, in the 32 – 360 GB range, you can choose between 3 performance classes (Memory, Compute, High Compute). Some memory values, however, are covered by only one performance class. For example, very large instances > 6 TB can only be provisioned in the performance class High Memory.The performance classes Memory and High Memory are best suited for data- and memory-intensive workloads that require large amounts of memory and storage and involve processing large amounts of data for use cases like data warehousing, analytics, machine learning, or AI. If you expect data to be your primary challenge, it is beneficial to choose a performance class with more GB of memory per vCPU.The performance classes Compute and High Compute are the best choices for compute-intensive workloads that require high computational power to perform tasks like financial simulations, scientific and cryptographic calculations, rendering, etc. These workloads typically involve smaller volumes of data and benefit from a core-to-memory ratio supporting more vCPUs and fewer memory blocks. You may also consider Compute/High Compute for applications that have a high user concurrency; these applications are likely to require more vCPUs.If you are unsure whether your workload is more compute- or memory-intensive, choose the default class Memory, which is suitable for most workloads.

1.4. Considerations for scaling

A big advantage of SAP HANA Cloud is that you do not have to get the sizing right from the start.  You can change your configuration anytime to meet your performance, utilization, and/or TCO goals. When adjusting the size of your instance, consider the following:

Memory and compute resources can be increased and decreased. However, they cannot be scaled independently. Memory and compute are bound by the core-to-memory ratio; hence, scaling one resource leads to scaling the other. By increasing memory by a memory step, compute is increased by a vCPU step. Similarly, decreasing memory by a memory step reduces compute by a vCPU step.The memory size can be adjusted explicitly in SAP HANA Cloud Central. However, the number of vCPUs can only be modified by altering the memory value.Disk storage can only be increased and remains unchanged when memory is reduced.You can scale resources up and down within the same performance class or switch to a different performance class to obtain a different core-to-memory ratio, which might be beneficial in terms of resources and cost (refer to the next section).

2. TCO considerations

The value proposition of performance classes is TCO optimization. In this section, we will explore how the choice of the performance class impacts the total cost of your SAP HANA Cloud instance.

The resource consumption of an SAP HANA database is measured in Capacity Units (CUs). The number of CUs can be converted into your currency using the SAP BTP Estimator to get the instance cost. You can use the Consumption Monitor app in SAP HANA Cloud Central to monitor the CUs that are consumed by an existing instance. Additionally, SAP offers the SAP HANA Cloud Capacity Unit Estimator to help you estimate the CUs of a configuration before actually implementing it. Given that an amount of memory or vCPUs can be obtained in multiple performance classes at a different price point, it is a good practice to use the Estimator to determine the cost of alternative configurations and identify the most cost-effective option. For SAP Datasphere please use the SAP Datasphere Capacity Unit Estimator.

The sizing information in the examples below was obtained by using the SAP HANA Cloud Capacity Unit Estimator (September 2024) and is for illustration only.  

2.1. TCO differences between performance classes

A given amount of memory can be configured in different performance classes. The lowest TCO for the same amount of memory is achieved in the performance classes Memory or High Memory (for large memory sizes).   

Example: Table 3 shows the estimated CUs for an instance with 32 GB of memory when configured in different performance classes. The memory size of 32 GB is available in 3 performance classes, but each class offers a different compute capacity. The most cost-efficient configuration is achieved in the performance class Memory, which provides the lowest number of vCPUs.

Performance Class

Memory(GB)

vCPU

CUs/month

Memory

32

2

843

Compute

32

4

1,076

High Compute

32

8

1,543

Table 3: Alternative configurations for 32 GB of memory in different performance classes and the estimated costs

Similarly, a given compute capacity can be obtained in different performance classes. The lowest TCO for the same number of vCPUs is achieved in the performance class High Compute. 

Example: Table 4 shows the estimated CUs for an instance with eight vCPUs in different performance classes. To obtain eight vCPUs, you need to configure 128 GB of memory in the performance class Memory and only 32 GB in the performance class High Compute. The most cost-efficient configuration has less memory for the same amount of vCPU and is obtained in the performance class High Compute.

Performance Class

Memory(GB)

vCPU

CUs/month

Memory

128

8

3,298

Compute

64

8

2,128

High Compute

32

8

1,543

Table 4: Alternative configurations for eight vCPUs in different performance classes and the estimated costs

2.2. Scaling options  

Assume you have configured an instance with a certain amount of memory and compute capacity. After analyzing the resource consumption, you decide to adjust the resources. You have two options for increasing memory and compute:

Scale up within the existing performance class,Switch to another performance class (and potentially adjust the resources).

Let’s look at an example. Assume your instance was provisioned in the performance class Memory with 48 GB of memory and three vCPU, consuming 1,252 CUs (Table 5). When you look at the resource usage metrics, you notice a high CPU consumption (Used Compute is high), but memory seems to be sufficient (Peak Used Memory is within the available range). So, you decide to increase vCPU, e.g., by two vCPUs.

Performance Class

Memory(GB)

vCPU

CUs/month

Memory

48

3

1,252

Table 5: Initial configuration for scaling example

Option 1: Scale up within the performance class Memory (Table 6)

Performance Class

Memory(GB)

vCPU

CUs/month

Memory

80

5

2,070

Table 6: Estimated CUs for Option 1

Option 2: Change the performance class to Compute (Table 7)

Performance Class

Memory(GB)

vCPU

CUs/month

Compute

48

6

1,602

Table 7: Estimated CUs for Option 2

As noted in Option 2, switching the performance class from Memory to Compute has a clear benefit: it gives you additional processing power at a lower cost (1,602 vs. 2,070 CUs/month). In real life, increased CPU utilization will likely require extra memory, especially if a higher number of concurrent users are running a higher number of complex queries. By further expanding the memory size to 56 GB while in the performance class Compute (see Table 8), your instance will consume 1,865 CUs/month, which is still cheaper than Option 1.  

Performance Class

Memory(GB)

vCPU

CUs/month

Compute

56

7

1,865

Table 8: Estimated CUs for Option 2 and additional memory

2.3. Idle resources

If you deployed your instance in the default performance class Memory, over time, you may find that memory is over-provisioned. In this case, you could reduce the memory size within the performance class Memory (vCPU is also decreased by the core-to-memory ratio) or switch to the performance class Compute/High Compute (and keep the previous number of vCPU).

Table 9 shows an example. While both options reduce the number of Capacity Units, Option 2 may be the only viable alternative if the vCPUs are used.

Performance Class

Memory(GB)

vCPU

Storage

CUs/month

Memory

1,024

64

2,600

26,211

Option 1: Memory

512

32

2,600

13,877

Option 2: Compute

512

64

2,600

17,614

Table 9: Options for downsizing memory

When downsizing the memory size of an instance, be aware that disk storage size cannot be reduced. When using the SAP HANA Cloud Capacity Unit Estimator, you must manually adjust the disk space to reflect the value prior to downsizing memory. In the above example, the Estimator defaults to 1,320 GB storage for 512 GB of memory in the performance class Compute; this needs to be adjusted to the original 2,600 GB to obtain an accurate estimate.

3. Summary

Performance classes govern the sizing of SAP HANA database instances in SAP HANA Cloud. By selecting a performance class, you determine the ratio between compute and memory resources. SAP HANA Cloud provides four performance classes and a choice of SAP HANA database sizes.

Each workload places unique demands on compute and memory resources. In order to identify the right performance class and select the appropriate instance size, you should first estimate your resource needs. Visit sap.com/sizing if you need assistance or additional information on sizing.  

The choice of the performance class can impact your TCO. Before provisioning or resizing an instance, use the SAP HANA Cloud Capacity Unit Estimator to determine the cost of alternative configurations and identify the most cost-effective option.

 

Thank you to all contributors and reviewers for their input: @Daniel_Dukes, Lars Hömke, @SabinLarranagaI, Matt Zenus, Frank Renkes, @Ammar_Naji 

 

​ This blog explains performance classes and helps you decide which performance class is best for your SAP HANA database based on workload and cost. Performance classes are relevant for standalone SAP HANA Cloud instances and for solutions like SAP Datasphere, where SAP HANA Cloud instances are provisioned as an underlying database when the application is provisioned.1. About performance classes Performance classes govern the sizing of SAP HANA database instances. A performance class groups all available configurations (SAP HANA database sizes) with a similar ratio between compute and memory resources. The core-to-memory ratio describes how many GB of memory are allocated per virtual CPU (vCPU).SAP offers four performance classes, which are shown in Table 1. The performance classes Memory and High Memory allow you to allocate more GB of memory per vCPU than Compute and High Compute.Performance ClassCore-to-memory ratioExamples of instance size options {vCPUs, GB}High Compute1:4{8, 32}, {9, 36}, {10, 40}, …Compute1:8{4, 32}, {5, 40}, {6, 48}, …Memory (default)1:13-16{2, 32}, {3, 48}, {4, 64}, …High Memory1:20-30{120, 3600}, {204, 5970}, {442, 9000}, …Table 1: Available performance classes, the respective core-to-memory ratios, and examples of instance sizesBy selecting a performance class, you decide the core-to-memory ratio of the instance and gain access to all configurations characterized by that ratio. You can request a specific configuration by providing the actual size of the instance, especially the amount of memory needed to run your workload.1.1. BenefitCustomers provision SAP HANA Cloud databases for many different purposes. Depending on the type of workload, the use case may require a higher or lower ratio between vCPUs and GB. Performance classes provide a flexible core-to-memory ratio and introduce more options for sizing. Choosing the right performance class helps you achieve optimal performance, efficient resource utilization, and the best TCO.For example, a compute requirement of eight vCPUs can be implemented in multiple performance classes with different memory sizes and costs (see Table 2). If you need a small amount of memory, you can deploy the eight-vCPU instance in the performance class High Compute and achieve a better TCO than by choosing the performance class Memory, where you would pay more for potentially unused memory blocks.  Performance ClassMemory(GB)vCPUsCUs/monthHigh Compute328 1,543Compute648 2,128Memory1288 3,298Table 2: Alternative configurations for eight vCPUs in different performance classes and estimated costs1.2. How to set the performance class and the size of your instanceYou set the performance class when you create the instance and can change it at any time later.SAP HANA Cloud CentralIn the provisioning wizard, you select the performance class and enter the memory size of your instance. The minimum disk space  is allocated automatically based on the specified amount of memory. Similarly, the number of vCPUs is set automatically as a function of the specified performance class and the memory size; you cannot enter the compute capacity manually in the UI.CLIWhen creating an SAP HANA database instance using the CLI, you provide values for the parameters memory, storage, and vcpu. The only mandatory parameter is memory. If vcpu is specified, the core-to-memory ratio is calculated based on your input, and this ratio determines the performance class. If vcpu is not provided, the default performance class Memory is selected, and the number of vCPUs is calculated automatically. Note that there is no dedicated parameter for the performance class.1.3. How to choose the most suitable performance class for your workloadThe optimal performance class provides a configuration (SAP HANA database size) that closely matches your resource needs.If you can accurately estimate the required memory and compute resources, choosing the performance class is straightforward: use your values for memory and vCPU, calculate the core-to-memory ratio, and look for the performance class that provides the closest ratio.Otherwise, you should at least estimate the required memory, since memory is the fundamental resource of an SAP HANA database. For help with memory sizing, refer to sap.com/sizing. Once you know the memory size, you should think about the expected workload before you select the performance class (and compute resources). The following considerations might help:For many memory values, you have a choice of performance classes. For example, in the 32 – 360 GB range, you can choose between 3 performance classes (Memory, Compute, High Compute). Some memory values, however, are covered by only one performance class. For example, very large instances > 6 TB can only be provisioned in the performance class High Memory.The performance classes Memory and High Memory are best suited for data- and memory-intensive workloads that require large amounts of memory and storage and involve processing large amounts of data for use cases like data warehousing, analytics, machine learning, or AI. If you expect data to be your primary challenge, it is beneficial to choose a performance class with more GB of memory per vCPU.The performance classes Compute and High Compute are the best choices for compute-intensive workloads that require high computational power to perform tasks like financial simulations, scientific and cryptographic calculations, rendering, etc. These workloads typically involve smaller volumes of data and benefit from a core-to-memory ratio supporting more vCPUs and fewer memory blocks. You may also consider Compute/High Compute for applications that have a high user concurrency; these applications are likely to require more vCPUs.If you are unsure whether your workload is more compute- or memory-intensive, choose the default class Memory, which is suitable for most workloads.1.4. Considerations for scalingA big advantage of SAP HANA Cloud is that you do not have to get the sizing right from the start.  You can change your configuration anytime to meet your performance, utilization, and/or TCO goals. When adjusting the size of your instance, consider the following:Memory and compute resources can be increased and decreased. However, they cannot be scaled independently. Memory and compute are bound by the core-to-memory ratio; hence, scaling one resource leads to scaling the other. By increasing memory by a memory step, compute is increased by a vCPU step. Similarly, decreasing memory by a memory step reduces compute by a vCPU step.The memory size can be adjusted explicitly in SAP HANA Cloud Central. However, the number of vCPUs can only be modified by altering the memory value.Disk storage can only be increased and remains unchanged when memory is reduced.You can scale resources up and down within the same performance class or switch to a different performance class to obtain a different core-to-memory ratio, which might be beneficial in terms of resources and cost (refer to the next section).2. TCO considerationsThe value proposition of performance classes is TCO optimization. In this section, we will explore how the choice of the performance class impacts the total cost of your SAP HANA Cloud instance.The resource consumption of an SAP HANA database is measured in Capacity Units (CUs). The number of CUs can be converted into your currency using the SAP BTP Estimator to get the instance cost. You can use the Consumption Monitor app in SAP HANA Cloud Central to monitor the CUs that are consumed by an existing instance. Additionally, SAP offers the SAP HANA Cloud Capacity Unit Estimator to help you estimate the CUs of a configuration before actually implementing it. Given that an amount of memory or vCPUs can be obtained in multiple performance classes at a different price point, it is a good practice to use the Estimator to determine the cost of alternative configurations and identify the most cost-effective option. For SAP Datasphere please use the SAP Datasphere Capacity Unit Estimator.The sizing information in the examples below was obtained by using the SAP HANA Cloud Capacity Unit Estimator (September 2024) and is for illustration only.  2.1. TCO differences between performance classesA given amount of memory can be configured in different performance classes. The lowest TCO for the same amount of memory is achieved in the performance classes Memory or High Memory (for large memory sizes).   Example: Table 3 shows the estimated CUs for an instance with 32 GB of memory when configured in different performance classes. The memory size of 32 GB is available in 3 performance classes, but each class offers a different compute capacity. The most cost-efficient configuration is achieved in the performance class Memory, which provides the lowest number of vCPUs.Performance ClassMemory(GB)vCPUCUs/monthMemory322843Compute3241,076High Compute3281,543Table 3: Alternative configurations for 32 GB of memory in different performance classes and the estimated costsSimilarly, a given compute capacity can be obtained in different performance classes. The lowest TCO for the same number of vCPUs is achieved in the performance class High Compute. Example: Table 4 shows the estimated CUs for an instance with eight vCPUs in different performance classes. To obtain eight vCPUs, you need to configure 128 GB of memory in the performance class Memory and only 32 GB in the performance class High Compute. The most cost-efficient configuration has less memory for the same amount of vCPU and is obtained in the performance class High Compute.Performance ClassMemory(GB)vCPUCUs/monthMemory12883,298Compute6482,128High Compute3281,543Table 4: Alternative configurations for eight vCPUs in different performance classes and the estimated costs2.2. Scaling options  Assume you have configured an instance with a certain amount of memory and compute capacity. After analyzing the resource consumption, you decide to adjust the resources. You have two options for increasing memory and compute:Scale up within the existing performance class,Switch to another performance class (and potentially adjust the resources).Let’s look at an example. Assume your instance was provisioned in the performance class Memory with 48 GB of memory and three vCPU, consuming 1,252 CUs (Table 5). When you look at the resource usage metrics, you notice a high CPU consumption (Used Compute is high), but memory seems to be sufficient (Peak Used Memory is within the available range). So, you decide to increase vCPU, e.g., by two vCPUs.Performance ClassMemory(GB)vCPUCUs/monthMemory4831,252Table 5: Initial configuration for scaling exampleOption 1: Scale up within the performance class Memory (Table 6)Performance ClassMemory(GB)vCPUCUs/monthMemory8052,070Table 6: Estimated CUs for Option 1Option 2: Change the performance class to Compute (Table 7)Performance ClassMemory(GB)vCPUCUs/monthCompute4861,602Table 7: Estimated CUs for Option 2As noted in Option 2, switching the performance class from Memory to Compute has a clear benefit: it gives you additional processing power at a lower cost (1,602 vs. 2,070 CUs/month). In real life, increased CPU utilization will likely require extra memory, especially if a higher number of concurrent users are running a higher number of complex queries. By further expanding the memory size to 56 GB while in the performance class Compute (see Table 8), your instance will consume 1,865 CUs/month, which is still cheaper than Option 1.  Performance ClassMemory(GB)vCPUCUs/monthCompute5671,865Table 8: Estimated CUs for Option 2 and additional memory2.3. Idle resourcesIf you deployed your instance in the default performance class Memory, over time, you may find that memory is over-provisioned. In this case, you could reduce the memory size within the performance class Memory (vCPU is also decreased by the core-to-memory ratio) or switch to the performance class Compute/High Compute (and keep the previous number of vCPU).Table 9 shows an example. While both options reduce the number of Capacity Units, Option 2 may be the only viable alternative if the vCPUs are used.Performance ClassMemory(GB)vCPUStorageCUs/monthMemory1,024642,60026,211Option 1: Memory512322,60013,877Option 2: Compute512642,60017,614Table 9: Options for downsizing memoryWhen downsizing the memory size of an instance, be aware that disk storage size cannot be reduced. When using the SAP HANA Cloud Capacity Unit Estimator, you must manually adjust the disk space to reflect the value prior to downsizing memory. In the above example, the Estimator defaults to 1,320 GB storage for 512 GB of memory in the performance class Compute; this needs to be adjusted to the original 2,600 GB to obtain an accurate estimate.3. SummaryPerformance classes govern the sizing of SAP HANA database instances in SAP HANA Cloud. By selecting a performance class, you determine the ratio between compute and memory resources. SAP HANA Cloud provides four performance classes and a choice of SAP HANA database sizes.Each workload places unique demands on compute and memory resources. In order to identify the right performance class and select the appropriate instance size, you should first estimate your resource needs. Visit sap.com/sizing if you need assistance or additional information on sizing.  The choice of the performance class can impact your TCO. Before provisioning or resizing an instance, use the SAP HANA Cloud Capacity Unit Estimator to determine the cost of alternative configurations and identify the most cost-effective option. —Thank you to all contributors and reviewers for their input: @Daniel_Dukes, Lars Hömke, @SabinLarranagaI, Matt Zenus, Frank Renkes, @Ammar_Naji    Read More Technology Blogs by SAP articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author