首页 > 解决方案 > HammerDB - 如何使用 mysql、TPCC 模式进行内存测试?

问题描述

我正在使用 HammerDB 3.1 和 mysql 作为后端进行 TPCC 测试。通过查看测试期间的资源消耗,我认为它不会进行内存测试,因为有很多 IO 活动。

所以我的问题是,如果使用 mysql 服务器可以进行内存中的hammerdb 测试,或者我该如何实现呢?

否则使用默认的 mysql 配置,基于hammerdb文档。

标签: hammerdb

解决方案


对于关系数据库上的 TPCC 测试,I/O 活动将分为 2 个主要区域,数据区域和重做/事务日志或 WAL,这两者都将缓冲在内存中,但有一个关键区别。对于数据区域,您将有一个缓冲区缓存或池,您可以在其中读取数据块或页面,对于 MySQL 和 InnoDB 存储引擎,这是由例如 innodb_buffer_pool_size=64000M 设置的。在测试加速期间的基本级别,您会将大部分数据块从磁盘读取到此缓冲池中,从那里对块的所有操作都将在内存中进行。定期修改的块将被写出到磁盘。为防止数据因故障而丢失,所有更改都写入重做日志,并在提交时刷新到磁盘。有一个内存缓冲区,其中更改将排队并可能一起刷新到磁盘,但是此缓冲区将很小,因为所有更改在发生时都需要到达持久媒体(因此之前不会填充大于 10 MB 的日志缓冲区它被冲洗)。因此,对于 TPCC 测试,您将看到大量写入重做日志的活动。如果持久性介质(HDD 或 SDD)无法跟上写入速度,这将成为阻碍更高事务率添加更多虚拟用户的瓶颈,因此在数据区域中需要更少的内存,因为默认情况下,一个虚拟用户将主要在 1 上工作仓库。如果要增加数据区活动,“使用所有仓库”复选框将增加每个虚拟用户将使用的仓库数量。


推荐阅读