我使用MySQL3.1和HammerDB作为后端进行了TPCC测试。通过查看测试期间的资源消耗,我认为它不会进行内存中的测试,因为有大量的IO活动。
所以我的问题是,如果使用mysql服务器,是否可以进行内存中的hammerdb测试,或者我如何实现这一点?
否则,请根据hammerdb文档使用默认的mysql配置。
发布于 2019-06-20 18:12:49
对于关系数据库上的TPCC测试,I/O活动将分为两个主要区域,数据区域和重做/事务日志或WAL,这两个区域都将在内存中缓冲,但存在关键差异。对于数据区域,您将有一个缓冲区缓存或池,您可以在其中读取数据块或页面,对于MySQL和InnoDB存储引擎,这是由例如innodb_buffer_pool_size=64000M设置的。在基本级别上,在测试rampup期间,您将把大多数数据块从磁盘读取到这个缓冲池中,所有对这些块的操作都将在内存中进行。修改后的数据块将定期写出到磁盘。为了防止数据因故障而丢失,所有更改都会写到重做日志中,并在提交时将其刷新到磁盘。有一个内存中的缓冲区,更改将在其中排队并可能一起刷新到磁盘,但是这个缓冲区将很小,因为所有更改在发生时都需要到达持久介质(因此,在刷新之前,不会填充大于10s MB的日志缓冲区)。因此,对于TPCC测试,您将看到许多写入重做日志的活动。如果持久性介质(HDD或SDD)跟不上写入,这将是一个瓶颈,阻止更高的事务率添加更多虚拟用户,因此在数据区域中需要更少的内存,因为默认情况下,一个虚拟用户将主要在一个仓库上工作。如果您想要增加数据区活动,则“使用所有仓库”复选框将增加每个虚拟用户将使用的仓库数量。
https://stackoverflow.com/questions/56664029
复制相似问题