All Products
Search
Document Center

Lindorm:Performance Testing Tool - Shell

Last Updated:Mar 28, 2026

AHBench is a benchmark testing suite developed by the Alibaba Cloud Lindorm team. It integrates the Yahoo! Cloud Serving Benchmark (YCSB) for one-click performance testing of Lindorm and HBase clusters.

A complete benchmark run involves six steps:

  1. Meet prerequisites (network connectivity, whitelist, runtime environment)

  2. Download and extract AHBench

  3. Configure the cluster endpoint

  4. Configure environment variables

  5. (Optional) Adjust test parameters

  6. Run a test set and analyze results

Prerequisites

Before you begin, make sure you have:

  • A Lindorm or HBase cluster to test against

  • An Elastic Compute Service (ECS) instance in the same region and using the same network type as the cluster, to run the stress testing client

    • Use a Virtual Private Cloud (VPC) for better network security. If both instances use VPC, they must share the same VPC ID. Place the ECS instance in the same zone as the cluster to reduce network latency.

  • The ECS instance IP address added to the Lindorm instance whitelist. See Configure a whitelist.

  • Linux operating system, JDK 1.8 or later, and Python 2.7 installed on the ECS instance

  • At least 16 dedicated CPU cores on the ECS instance

Note

Do not run AHBench against a production environment. Stress testing can overload the cluster under test.

Download AHBench

Download AHBench v1.0.5, upload it to the ECS instance, and extract the archive.

Configure the cluster endpoint

Add the cluster endpoint to AHBench/conf/hbase-site.xml. For instructions on finding the Lindorm connection address, see Develop applications using the HBase Java API.

Also add the following property to hbase-site.xml:

<property>
  <name>hbase.client.connection.impl</name>
  <value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
</property>

Configure environment variables

  1. Open the environment configuration file:

    vi AHBench/conf/ahbench-env.properties
  2. Set JAVA_HOME to the JDK installation path. Skip this step if Java is already on the system PATH.

    JAVA_HOME=/usr/java/jdk1.8.0/
  3. Set HBASE_VERSION to match the HBase version of the cluster under test: 1 for version 1.x, 2 for version 2.x.

    HBASE_VERSION=2

Adjust test parameters (optional)

Edit AHBench/conf/ahbench-settings.properties to customize compression, encoding, thread count, data volume, and field size. The defaults work for most cases.

ParameterDefaultOptionsNotes
ahbench.table.compressionSNAPPYNONE, LZO, ZSTD, SNAPPY, GZ, LZ4Use ZSTD for Lindorm — it delivers better compression ratios. Not all systems support every option.
ahbench.table.encodingDIFFNONE, DIFF, INDEXUse INDEX for Lindorm. INDEX encoding is not supported by all systems.

The configuration file contains inline comments for all other parameters.

Note

AHBench uses ahbenchtest-read and ahbenchtest-write as the test table names. These tables are deleted and recreated during each test run. Make sure those table names are safe to delete in your cluster.

Run a test

Each test has two internal phases: a load phase that writes test data into the cluster, and a run phase that executes read/write operations against that data. The --skipload flag skips the load phase — only use it when the previous test completed successfully.

Quick test

Tests with 10 million rows. Requires at least 20 GB of free storage. Total runtime is approximately 40 minutes.

cd AHBench
./fast_test

Full test

Tests with 2 billion rows. Requires at least 2 TB of free storage. Total runtime is approximately 25 hours.

cd AHBench
./full_test

To repeat the full test without re-importing data, use --skipload. This reduces runtime to approximately 3.5 hours.

cd AHBench
./full_test --skipload
Note

ECS is a virtualized environment. Performance results for the same instance type may vary by 5–10% between runs. This is expected.

Analyze test results

After the test completes, AHBench writes results to a Comma-Separated Values (CSV) file in the current directory.

  1. Find the CSV file:

    ls -ltr
  2. View the results:

    cat full_throughput.csv

Open the CSV in Excel or Numbers for side-by-side comparison across multiple test runs.

csvwenjian

Troubleshooting

If the test exits with an error, check the following:

  • JAVA_HOME is correctly set and Python 2.7 is installed.

  • The cluster endpoint in hbase-site.xml is correct.

  • HBASE_VERSION matches the actual HBase version of the cluster.

  • The cluster supports the compression algorithm specified in ahbench-settings.properties.

  • The cluster is running and reachable from the ECS instance.