惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
雷峰网
雷峰网
WordPress大学
WordPress大学
L
LangChain Blog
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
腾讯CDC
GbyAI
GbyAI
罗磊的独立博客
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
F
Fortinet All Blogs
Y
Y Combinator Blog
V
V2EX
A
About on SuperTechFans

MariaDB.org

"Verify, Measure, and Get Your Hands Dirty": Two Decades of Database Support with Sveta Smirnova - MariaDB.org The database world grew up — notes from Percona Live Amsterdam - MariaDB.org MariaDB 13.0 Is Now Stable - MariaDB.org Trying DuckDB for Magento Analytics: An Experiment with One Million Orders - MariaDB.org MariaDB adoption is growing, and the way people get it is changing – Adoption Index 2026-09 - MariaDB.org AWS renews Diamond sponsorship of MariaDB Foundation for a fourth consecutive year - MariaDB.org Rethinking PAM - MariaDB.org From a Chocolate Wrapper to Concurrent InnoDB Page Splits - MariaDB.org Launching MariaDB's Database Survey 2026 - MariaDB.org MariaDB Plugins Beyond C++: What the Community Told Us - MariaDB.org MariaDB Connector/C Compatibility: An Update on CONC-821 - MariaDB.org MariaDB Foundation Newsletter – September 2026 - MariaDB.org MariaDB at Percona Live Amsterdam 2026: Ecosystem, Plugins, Security, and Community - MariaDB.org MariaDB Server 12.3, 11.8, 11.4 and 10.11 – Q3 2026 Maintenance Releases, and Goodbye 10.6 - MariaDB.org MariaDB Contribution Statistics, January-June 2026 - MariaDB.org Seravo becomes a Silver Sponsor of MariaDB Foundation - MariaDB.org Extending MariaDB with Native Aggregate Plugins: Laying the Groundwork for HyperLogLog - MariaDB.org MariaDB 13.1 Feature in Focus: JSON Operators and JSON_TABLE Improvements - MariaDB.org MariaDB Foundation is pleased to welcome Auree as a Silver Sponsor. - MariaDB.org Hear Ye, Hear Ye: A Guide to MariaDB’s Governance Model - MariaDB.org Wirekite becomes Silver Sponsor of MariaDB Foundation - MariaDB.org From a Production Problem to MariaDB: Headout’s Open-Source Contribution Journey - MariaDB.org Adobe Commerce Chooses MariaDB as Its Default Database Platform - MariaDB.org ScalaHosting Becomes a Gold Sponsor of MariaDB Foundation - MariaDB.org The Queen and the "Half That Wasn't Told" - MariaDB.org IBM continues as a Platinum Sponsor of MariaDB Foundation - MariaDB.org Say the Name: MariaDB, MySQL, and the Ecosystem We Share - MariaDB.org Deploying the MariaDB Privacy-First Stack Anywhere with Terraform - MariaDB.org From PostgreSQL 12 to MariaDB 11: A Gradual Fintech Migration with 23% Lower TCO - MariaDB.org MariaDB 13.1 Feature in Focus: Validate Your Configuration Before Starting the Server - MariaDB.org
MariaDB Foundation Advances TAF with HammerDB 6.0 and xt_...
Jonathan Miller · 2026-08-14 · via MariaDB.org

Overview

While validating MariaDB RSS stability under stored procedure workloads, I ran into unexpected memory growth. The goal was straightforward: confirm that MariaDB was not leaking memory when running TPROC-C stored procedure workloads. To do this, I used HammerDB TPROC-C SP and added improved RSS monitoring so I could watch memory usage over long-duration runs.

The results were clear. MariaDB RSS stayed stable. HammerDB 5.0 kept growing, and growing.

This led to a deeper investigation into HammerDB itself, and ultimately to an update in TAF to support HammerDB 6.0 and a new RSS logging script.

MariaDB Foundation’s Test Automation Framework (TAF-Perl)

Improved RSS Monitoring

The original RSS script in TAF logged memory usage, but the output was ambiguous. It did not clearly identify the process being monitored, timestamps were minimal, and the formatting made long-duration analysis harder than it needed to be.

I replaced the older script with a more useful version, rssLogger.sh, which improves clarity and usability:

– It resolves and prints the process name (for example, mariadbd or hammerdbcli).
– It prints timestamped entries.
– It prints PID and process name on every line.
– It generates a clear, auto-named log file.
– It makes long-duration memory tracking readable and unambiguous.

Each process still requires its own instance of the script, but the improved output makes it obvious what you are looking at.

Example output line:

2024-08-13 11:22:01 pid: 12345 (mariadbd) RSS: 512.34 MB

With this improved logging, it became immediately obvious that MariaDB RSS stayed flat, while HammerDB 5.0 RSS steadily increased over time.

HammerDB 5.0 Memory Growth

During long-duration TPROC-C SP runs, HammerDB 5.0 showed continuous RSS growth. MariaDB stayed flat. HammerDB did not.

After discussing this with Steve Shaw, the author of HammerDB, he explained the root cause:

HammerDB 5.0 does not limit the number of samples collected by the xtprof time profiler. With no reservoir limit, memory usage grows continuously as virtual users run.

This behavior was fixed in HammerDB 6.0.

HammerDB 6.0 Fix

I pulled HammerDB 6.0 into my TAF clone and updated the default HammerDB client executable:

hammerdb_tprocc.client_executable=client_source/HammerDB-6.0/hammerdbcli

Then I reran the same workload.

The difference was immediate:

– HammerDB 5.0 RSS: continuous growth.
– HammerDB 6.0 RSS: tops out around ~740 MB and stays flat.

Steve explained why:

HammerDB 6.0 introduces a new setting called xt_reservoir. It controls the maximum number of samples collected per virtual user. The default is 10000 samples. If set to 0, HammerDB reverts to the old unlimited behavior seen in 5.0.

This is important for users:

– xt_reservoir=10000 gives controlled, stable memory usage as it limits sampling to the last X number.
– xt_reservoir=0 restores the 5.0 behavior and will cause memory to grow without bound as it collects all samples.
– Users who want additional samples, or legacy behavior must explicitly change this value in the XML file.

The setting is located in:

client_source/HammerDB-6.0/config/generic.xml

Inside the <timeprofile> block:

<xt_reservoir>10000</xt_reservoir>

This is the fix for the memory growth seen in HammerDB 5.0, and users should be aware that changing this value directly affects HammerDB’s memory footprint.

TAF Updates

Based on these findings, I updated TAF as follows:

1. Added HammerDB 6.0 to the clone.
2. Updated default HammerDB properties to point to 6.0.
3. Left HammerDB 5.0 in place for reproducibility until the next official TAF release.
4. Removed the old RSS script.
5. Added the improved RSS script under taf/scripts/memory/.

TAF Commit 57dc7cee618138e

These changes improve stability and make memory behavior easier to analyze without breaking existing test suites.

Summary

MariaDB RSS remained stable under stored procedure workloads. HammerDB 5.0 did not, due to unlimited xtprof sampling. HammerDB 6.0 fixes this with the xt_reservoir setting. Setting xt_reservoir to 10000 limits sampling to the last X entries and keeps memory stable. Setting xt_reservoir to 0 restores the old 5.0 behavior and will cause memory to grow without bound as it collects all samples. TAF has been updated to include HammerDB 6.0, improved RSS monitoring, and clearer defaults, while keeping HammerDB 5.0 available for reproducibility until the next major release.

Jonathan (Jeb) Miller has experience in military leadership, Fire/EMS leadership, computer operations leadership, teaching, and more than 26 years of database performance engineering (PervasiveSQL, MySQL, MariaDB). TAF is the third benchmarking framework he has helped design and build.