eG Monitoring
 

Measures reported by HanaDbWorkloadTest

The workload of the SAP HANA database server is typically characterized by the preparation, compilation, and executon of query statements for data definition, system control, and data manipulation such as inserts, updates, commits, and rollbacks. One of the key indicators of the performance of the server is its ability to handle this workload! While sudden/consistent surges in the load on the server can cause queries to queue up and choke the server, an unexpected slowdown in transaction execution can adversely impact the user-perceived performance of the server. Besides, the type of statements being submitted to the server for execution also affect its processing efficiency - for instance, rollbacks are basically expensive operations, and need to be kept at a bare minimum; a large number of rollbacks can hence, greatly degrade server performance. A healthy SAP HANA database therefore, is one which is not only moderately loaded, but has little-to-no rollback statements to execute, and is capable of processing its load in minimal time! To ensure the good health of the SAP HANA database, administrators should be able to:

  • Proactively detect a potential overload/processing slowdown;
  • Isolate the exact service that is facing the brunt of this problem condition;
  • Understand the nature of the load on that service and identify the query types that could be contributing to the high load/slowdown

The HanaDbWorkloadTest test enables administrators to achieve each of the goals outlined above. This test auto-discovers the port at which each service on the server listens, and for each port reports the total load on that port (i.e., service), the type of transactions handled by that port - whether updates, commits, or rollbacks, and the rate at which that port processes the load. This way, administrators can tell which port (i.e., service) is overloaded and/or is experiencing a processing bottleneck, and what type of transactions are responsible for this problem condition - updates? commits? or rollbacks?

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
executionCount Indicates the total workload of this port/service during the last measurement period. Number This is the total count of all executed statements for data manipulation, data definition, and system control, and is a good indicator of the workload of the port/service. By comparing the value of this measure across all ports, you can identify the overloaded port/service.
compilationCount Indicates the number of compilations performed by this port/service during the last measurement period. Number Ideally, the value of this measure should be less than the value of the executionCount measure.

When the compilationCount measure is higher than the executionCount measure, it indicates that the same query is compiled too many times which in turn is a problem that needs to be probed immediately.

updateTransactionCount Indicates the number of records that are updated in the SAP HANA database through this port/service during the last measurement period. Number Once you are able to precisely point to the overloaded service/port, you may want to compare the value of the updateTransactionCount, commitCount, and rollbackCount measures for that service/port, to figure out which type of transaction is the maximum on that port. A high number of rollbacks is a cause for concern, as it increases processing overheads.
commitCount Indicates the number of transaction commits that happened in the SAP HANA database through this port/service during the last measurement period. Number Once you are able to precisely point to the overloaded service/port, you may want to compare the value of the updateTransactionCount, commitCount, and rollbackCount measures for that service/port, to figure out which type of transaction is the maximum on that port. A high number of rollbacks is a cause for concern, as it increases processing overheads.
rollbackCount Indicates the number of transactions that are rolled back in the SAP HANA database through this port/service during the last measurement period. Number Once you are able to precisely point to the overloaded service/port, you may want to compare the value of the updateTransactionCount, commitCount, and rollbackCount measures for that service/port, to figure out which type of transaction is the maximum on that port. A high number of rollbacks is a cause for concern, as it increases processing overheads.
rollbackPercentage Indicates the percentage of transactions that are rolled back in the SAP HANA database through this port/service during the last measurement period. Percent Compare the value of this measure across services/ports to know which service/port executed the maximum number of rollbacks. Any value higher than 30 is an indicator of bad performance, since work performed up to the rollback point is wasted. The cause of the rollbacks has to be probed.
executionRate Indicates the rate at which this service/port processed the load. Executions/Sec Ideally, the value of this measure should be high. A low value is indicative of a processing bottleneck. You may want to compare the value of this measure acros services/ports to know which service/port is the slowest in load processing.
compilationRate Indicates the rate at which compilations were performed on the SAP HANA database through this service/port. Compilations/Sec Ideally, the value of this measure should be high. A low value is indicative of a compilation bottleneck. You may want to compare the value of this measure across services/ports to know which service/port is the slowest in compilation.
updateTransactionRate Indicates the rate at which the records were updated on the SAP HANA database through this service/port. Updates/Sec Ideally, the value of this measure should be high. A low value is indicative of problems when updating records in the database. You may want to compare the value of this measure across services/ports to know which service/port is the slowest in updating records.
commitRate Indicates the rate at which transactions were committed to the database by this service/port. Commits/Sec IIdeally, the value of this measure should be high. A decrease in this measure during the monitoring period may indicate that the applications are not doing frequent commits. This may lead to problems with logging and data concurrency.

You may want to compare the value of this measure across services/ports to know which service/port seldom commits. The cause for the same has to be probed.

rollbackRate Indicates the rate of unit of work rollbacks since the last measurement period. Rollbacks/Sec Ideally, the value of this measure should be low. A high rollback rate is an indicator of bad performance, since work performed up to the rollback point is wasted.

You may want to compare the value of this measure across services/ports to know which service/port performs rollback operations on the database frequently. The cause for the same has to be probed.