Executing HCMT on Scale-Out HANA Database
After Hardware Configuration Check Tool (HWCCT), HANA hardware and cloud measurement tools (HCMT) has emerged as a very reliable and popular tool in recent years to measure the configuration and performance of hardware and cloud systems for the deployment of HANA 2.0 onwards.
HCMT checks the various aspects of the hardware readiness such as Filesystem, NUMA, CPUs and Networks before deploying the HANA database.
While there are ample documentations on executing HCMT on scale-up environment, this post emphasizes the execution of HCMT on scale-out environment.
In case of scale-out systems, we start the HCMT tool on the master host and specify the worker hosts on which the tests should be executed too. The tool reads the execution plan on master node, and delegates tests marked to the worker hosts.
Thus, for scale-out environment, the HCMT is executed in server-client mode, wherein the tool on master node runs in client mode and collects the test result performed by HCMT tools running remotely on worker nodes in server mode (-S).
It’s important to understand that we cannot (and need not) run HCMT server and client on same node.
Note: Usually HCMT should be executed prior to deployment of SAP HANA to avoid any bad performance and configuration later on, but we can execute the tool even after the installation of HANA DB to validate KPIs of the hardware. It’s better to stop HANA prior to the execution of HCMT.
In my case, i have the below nodes for the scale-out environment on which HANA 2.0 SPS06 is already installed and running.
- a-xhbt-db01 (master)
- a-xhbt-db02 (worker1)
- a-xhbt-db03 (worker2)
Common steps for running HCMT on Scale-up and Scale-out environment:
- I downloaded the HCMT tool from https://launchpad.support.sap.com/#/softwarecenter/softwarecenter –> SUPPORT PACKAGES & PATCHES –> Search by “HCMT”. I got HCMT_066_<nnn>.SAR file
- Upon extraction of the SAR file, we need to navigate to setup directory and execute ./hcmtsetup using root. This action creates all the necessary executables and json files
As HCMT runs for many hours, I preferred to execute it in background.
On worker nodes, i started the HCMT as server mode, with profile netserver.json. The respective execution logs to be written in the output files.
On a-xhbt-db02 (worker1)
nohup /media/BWOH/HCMT/setup/hcmt -S -v -p /media/BWOH/HCMT/setup/config/netserver.json >/media/BWOH/HCMT/outputdb-02.txt &
On a-xhbt-db03 (worker2)
nohup /media/BWOH/HCMT/setup/hcmt -S -v -p /media/BWOH/HCMT/setup/config/netserver.json >/media/BWOH/HCMT/outputdb-03.txt &
I got the error:
a-xhbt-db03:/media/BWOH/HCMT # more outputdb-03.txt
hcmt-2.00.066.00.1671096120 (2022-12-15 10:33:58)
Error: Port 50000 is already used.
This error may occur if HCMT is executed without stopping the HANA database.
Stopped the HANA DB
sapcontrol -nr 04 -function StopSystem HDB
sapcontrol -nr 04 -function GetSystemInstanceList
Started the HCMT on worker nodes again.
On a-xhbt-db02 (worker1)
On a-xhbt-db03 (worker2)
We can see that the HCMT as server is in listening mode now.
Now, started the HCMT as client on master node with execution profile
On a-xhbt-db01 (master)
nohup /media/BWOH/HCMT/setup/hcmt -v -p /media/BWOH/HCMT/setup/config/executionplan.json >/media/BWOH/HCMT/outputdb-01.txt &
The execution runs for more than 12 hours.
Once the execution is completed, the output hcmtresultxxx.zip file is created in setup directory of master node.
Visit the below URL and add the system as Scale-Out ( also input the other details such as system name, Memory etc)
Measurement Analysis –> Manage Systems –> Add system
Upload the output hcmtresultxxx.zip file to “Upload Measurement”
We may get the error
Measurement is for a “Scale-up” system, but the system is defined as “Scale-Out”
This error is due to fact that HCMT by default runs as scale-up mode, and the client running on master node has no information of the worker nodes.
Note: We see no update on output files for HCMT on worker nodes apart from the information that server started.
Edited the executionplan.json file with the details of worker hosts in “Value”.
We need to add standby host (if any) too. Don’t add master host here.
Now executed the HCMT again on workers and master hosts as i did earlier.
We can see that tests on worker nodes get finished with “Remote test finished” and ” Remote request processed”
The processed requests are updated to master node output hcmtresult<nnn>.zip file. There is no hcmtresultxxx.zip created for worker nodes.
Upon uploading the the result on “Upload Measurement” of the added scale-out system,
The result shows the details of failure (if any) for each of the hosts.
In my case, the hosts don’t comply the requirement of Filesystem Read Throughputs.
To meet the requirement, I should work on improvising the throughputs of the disks.