MySQL 8.0: MTR Configurations to Be Set to Server Defaults Where Possible

MySQL Test Run 或者 MTR,是一个MySQL测试项目。它的主要目的是为了确保MySQL服务器在新特性的功能测试阶段和旧功能完整性测试阶段符合预期。当MySQL服务器程序的任何组件出现变更时,都需要运行一系列的测试来检查这些变更是否会引起任何副作用。

MTR里的测试用例主要包含执行SQL语句和产生可以验证的结果。由于这些测试的目的是为了模仿客户端与MySQL服务器的交互,所以由MTR启动的MySQL服务的配置应该最好是与MySQL服务器的默认加载的配置相同。但是,MTR所使用的my.cnf配置文件会习惯性地将一些服务器系统参数设置设为非默认值,而不是采用默认值。而且这种配置已经被普遍使用多年,其原因可能是因为之前缺少性能强大的虚拟机。多年以来,大量的人力物力被投入到MySQL测试团队的组建之中。从当年只有少数几个工程师到现在,MySQL测试团队已经成长为一个完备的团队,并且可以用的机器也更为强大。由于每台物理机器都配置了海量内存和128 核心的处理器,因此可在在各种平台上运行数千个测试用例,这也正是本篇工作日志背后的驱动力。

WL#8795 开始仔细分析MTR使用的my.cnf配置文件,并将服务器系统变量的设置尽可能的更改为默认值。 除此之外,本日志还试图找到一些非默认设置的原因。

这篇博客将会讨论配置文件中的变量和它们的设置。

设置为服务器默认值的一些变量:

1. open-files-limit = 1024
2. local-infile
3. character-set-server = latin1
4. sort_buffer_size = 256K
5. loose-innodb_log_files_in_group = 2

下面的变量之前被设置为非默认值,但是现在已被修改为服务器的默认值:

1. key_buffer_size = 1M

由于增加这个变量的值可以为所有的读写操作提供更好的索引服务,所以在配置文件里,这个值被修改为默认值8M。这个变量的最大值是取决于服务器的物理内存大小以及每个进程的内存限制的。这也可能是之前设置为一个较小值的原因。

2. max_heap_table_size = 1M

这个变量的值被修改为默认值16M。这个值是表示允许的内存堆表大小的最大值,由于现在的机器都有了更大的内存,默认设置应该不会产生任何负面影响。

3.

Powered by WPeMatico

发表评论