Skip to content

HammerDB — Troubleshooting

Tool: HammerDB Category: Tool Guide

HammerDB Not Found on Remote Node

Symptom: Start-HammerDBTest.ps1 fails with hammerdbcli.exe not found.

Resolution:

Run Install-HammerDB.ps1 first, or verify the install path:

Invoke-Command -ComputerName "hci01-node1" -ScriptBlock {
    Test-Path "C:\HammerDB\hammerdbcli.exe"
}

If the path is custom, pass -HammerDBPath to Start-HammerDBTest.ps1.


Database Connection Refused

Symptom: The HammerDB run exits immediately with a Tcl error like couldn't connect to SQL Server.

Resolution:

  1. Verify the database server is reachable from the HammerDB node:
Invoke-Command -ComputerName "hci01-node1" -ScriptBlock {
    Test-NetConnection "sql01.corp.infiniteimprobability.com" -Port 1433
}
  1. Confirm credentials are valid:
# Test SQL Server auth from the HammerDB node
Invoke-Command -ComputerName "hci01-node1" -ScriptBlock {
    $conn = New-Object System.Data.SqlClient.SqlConnection
    $conn.ConnectionString = "Server=sql01;Database=master;User Id=sa;Password=<pwd>;Connect Timeout=5"
    try { $conn.Open(); "Connected OK" } catch { $_.Exception.Message } finally { $conn.Close() }
}
  1. For PostgreSQL, check pg_hba.conf allows the HammerDB node IP.

Zero NOPM in Results

Symptom: Collect-HammerDBResults.ps1 returns peak_nopm: 0 and samples: 0.

Possible Causes:

  • HammerDB ran but the database schema was not loaded (TPC-C build step missing)
  • The test ran for less than one ramp_up_seconds interval — no measurement window was reached
  • The log file is present but empty — hammerdbcli.exe crashed silently

Resolution:

# Read the raw log to see what HammerDB actually reported
Get-Content "logs\hammerdb\<RunId>\<RunId>-hammerdb.log" | Select-Object -First 50

Look for Vuser 1:FINISHED and System achieved lines. If absent, the virtual users never completed a transaction cycle.

To load the TPC-C schema (one-time step before benchmarking):

.\tools\hammerdb\scripts\Start-HammerDBTest.ps1 `
    -ClusterName "hci01.corp.infiniteimprobability.com" `
    -PrimaryNode "hci01-node1" `
    -Profile "tpc-c" `
    -DBServer "sql01" `
    -BuildSchema    # Loads warehouse data before running the test

Test Duration Too Short — Ramp-Up Exceeds Duration

Symptom: Log shows warm-up messages but no NOPM measurement lines.

Cause: ramp_up_seconds >= test_duration_seconds.

Resolution: Ensure test_duration_seconds > ramp_up_seconds. The recommended minimum test window is 5 minutes (300s) after ramp:

.\tools\hammerdb\scripts\Start-HammerDBTest.ps1 `
    -Profile "tpc-c" `
    -RampUpSeconds 120 `
    -TestDurationSeconds 420    # Total duration = 120s ramp + 300s measured

High Variance Between NOPM Samples

Symptom: Peak NOPM is 2× average NOPM; results are inconsistent.

Possible Causes:

  • Auto-growth events on the SQL Server database file — space allocation pauses write I/O
  • SQL Server checkpoint storms during the test window
  • Disk latency spikes (see Monitoring)

Resolution:

Pre-grow the database before running the benchmark:

-- SQL Server: pre-allocate to avoid auto-growth during test
USE tpcc;
DBCC SHRINKFILE (tpcc, TRUNCATEONLY);
ALTER DATABASE tpcc MODIFY FILE (NAME = tpcc, SIZE = 20GB, FILEGROWTH = 0);

PowerShell Remoting Failures

Symptom: Install-HammerDB.ps1 or Collect-HammerDBResults.ps1 fails with WinRM connection refused.

See the Operations Troubleshooting Guide for WinRM connectivity resolution steps.