我正在MariaDB (版本)上使用innodb_buffer_pool_size
.max_heap_table_size
query_cache_size
tmp_table_size
10.11.2
sysbench
我的目标是观察哪些参数会影响整体性能。为了确定这一点,我使用了不同的参数数值(即 MariaDB 的不同配置)。但是,我发现前面提到的参数都没有影响执行时的性能sysbench
,这很奇怪。
在我的实验中,我使用一台专用机器作为服务器,一台专用机器作为客户端。服务器和客户端都通过一个网络交换机 (1GBit/s) 连接,并使用 Debian 11 的最小安装。在客户端上,我使用oltp_read_write.lua
来自sysbench
使用50000
事件、4 个线程的工作负载,并设置time
为0
. 此外,我的服务器配置文件如下:
[mysqld]
bind-address=0.0.0.0
basedir=<pathRemoved>
datadir=<pathRemoved>
skip_name_resolve=ON
server_id=1
max_connections=100
innodb_buffer_pool_size=64M
max_heap_table_size=16M
query_cache_size=0
tmp_table_size=1M
innodb_buffer_pool_size
请注意,在整个实验过程中,我只改变、max_heap_table_size
、query_cache_size
和的值tmp_table_size
;所有其他参数都设置为其默认值。我为这些参数使用了以下不同的值:
innodb_buffer_pool_size
: 64M, 128M, 192M, 256M, 320Mmax_heap_table_size
: 1M, 16M, 32M, 48M, 64Mquery_cache_size
: 0, 16M, 32M, 48M, 64Mtmp_table_size
: 1M, 16M, 32M, 48M, 64M
我选择这些小值是为了增加在我的小型设置中观察服务器运行时行为变化的机会。在进行基准测试时,我观察到服务器上的 CPU 负载约为 25%。
确保除服务器或客户端进程外没有其他服务正在运行。sysbench
此外,我测量了基准测试完成所需的时间。我对每种配置重复测量 5 次,相对标准偏差约为 0.1%。上述配置的运行时间约为 131 秒。
改变这些参数的值会导致大约 130 秒的运行时间;我只观察到非常轻微的偏差,但没有什么真正相关的。我希望获得更大的运行时更改。
我确保正确创建和使用了配置文件;使用这些参数的无效值进行测试会导致在启动服务器时出错。
在执行基准测试时我是否遗漏了一些重要的东西?还是其他具有更相关数值的参数?