25.3 性能架构启动配置

要使用 MySQL Performance Schema,必须在服务器启动时将其启用以启用事件收集。

假设性能模式可用,则默认情况下启用它。要显式启用或禁用它,请在performance_schema变量设置为适当值的情况下启动服务器。例如,在您的my.cnf文件中使用以下行:

[mysqld]
performance_schema=ON

如果服务器在性能模式初始化期间无法分配任何内部缓冲区,则性能模式将禁用其自身并将performance_schema设置为OFF,并且服务器将在没有检测的情况下运行。

性能架构还允许在服务器启动时配置仪器和使用者。

要在服务器启动时控制仪器,请使用以下形式的选项:

--performance-schema-instrument='instrument_name=value'

在这里,* instrument_name 是仪器名称,例如wait/synch/mutex/sql/LOCK_open,而 value *是以下值之一:

  • OFFFALSE0:禁用乐器

  • ONTRUE1:启用仪器并计时

  • COUNTED:启用并计数(而非时间)仪器

每个--performance-schema-instrument选项只能指定一个乐器名称,但是可以指定该选项的多个实例来配置多个乐器。另外,仪器名称中允许使用模式来配置与该模式匹配的仪器。要将所有条件同步工具配置为启用并计数,请使用以下选项:

--performance-schema-instrument='wait/synch/cond/%=COUNTED'

要禁用所有乐器,请使用以下选项:

--performance-schema-instrument='%=OFF'

exception:memory/performance_schema/%仪器是内置的,无法在启动时禁用。

较长的乐器名称字符串优先于较短的模式名称,而与 Sequences 无关。有关指定用于选择乐器的模式的信息,请参见第 25.4.9 节“命名用于过滤操作的工具或使用者”

无法识别的乐器名称将被忽略。稍后安装的插件可能会创建乐器,这时会识别并配置该名称。

要在服务器启动时控制使用者,请使用以下形式的选项:

--performance-schema-consumer-consumer_name=value

在这里,* consumer_name 是使用者名称,例如events_waits_history,而 value *是以下值之一:

  • OFFFALSE0:不为使用者收集事件

  • ONTRUE1:为使用者收集事件

例如,要启用events_waits_history使用者,请使用以下选项:

--performance-schema-consumer-events-waits-history=ON

可以通过检查setup_consumerstable 找到允许的 Consumer 名称。不允许使用图案。 setup_consumerstable 中的使用者名称使用下划线,但是对于在启动时设置的使用者,名称中的短划线和下划线是等效的。

性能架构包括几个提供配置信息的系统变量:

mysql> SHOW VARIABLES LIKE 'perf%';
+--------------------------------------------------------+---------+
| Variable_name                                          | Value   |
+--------------------------------------------------------+---------+
| performance_schema                                     | ON      |
| performance_schema_accounts_size                       | 100     |
| performance_schema_digests_size                        | 200     |
| performance_schema_events_stages_history_long_size     | 10000   |
| performance_schema_events_stages_history_size          | 10      |
| performance_schema_events_statements_history_long_size | 10000   |
| performance_schema_events_statements_history_size      | 10      |
| performance_schema_events_waits_history_long_size      | 10000   |
| performance_schema_events_waits_history_size           | 10      |
| performance_schema_hosts_size                          | 100     |
| performance_schema_max_cond_classes                    | 80      |
| performance_schema_max_cond_instances                  | 1000    |
...

performance_schema变量是ONOFF,以指示是启用还是禁用了性能模式。其他变量指示 table 大小(行数)或内存分配值。

Note

启用性能架构后,性能架构实例的数量可能会在很大程度上影响服务器内存占用。 Performance Schema 自动缩放许多参数以仅根据需要使用内存。参见第 25.17 节“性能模式内存分配模型”

要更改 Performance Schema 系统变量的值,请在服务器启动时进行设置。例如,将以下各行放在my.cnf文件中,以更改 await 事件的历史记录 table 的大小:

[mysqld]
performance_schema
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

如果未明确设置性能模式,则在服务器启动时,性能模式会自动调整其几个参数的值。例如,它通过这种方式调整控制事件 awaittable 大小的参数的大小。 Performance Schema 增量分配内存,将其内存使用量扩展到实际服务器负载,而不是在服务器启动期间分配其所需的所有内存。因此,根本不需要设置许多上浆参数。要查看哪些参数是自动调整大小或自动缩放的,请使用mysqld-详细-帮助并检查选项说明,或参阅第 25.15 节“性能模式系统变量”

对于服务器启动时未设置的每个自动调整大小的参数,性能模式将根据以下系统值的值来确定如何设置其值,这些系统值被视为有关配置 MySQL 服务器的“提示”:

max_connections
open_files_limit
table_definition_cache
table_open_cache

要覆盖给定参数的自动调整大小或自动缩放,请在启动时将其设置为-1 以外的值。在这种情况下,性能模式将为其分配指定的值。

在运行时,SHOW VARIABLES显示自动大小参数设置为的实际值。自动缩放的参数显示为-1.

如果禁用了性能架构,则其自动调整大小和自动调整参数将保持设置为-1,并且SHOW VARIABLES显示-1.