Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL Performance Schema  /  Performance Schema Startup Configuration

29.3 性能架构启动配置

要使用 MySQL 性能架构,必须在服务器启动时启用它,以便事件收集发生。

性能架构默认启用。要显式启用或禁用它,请在服务器启动时将 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 是以下值之一:

  • OFF, FALSE, or 0: 禁用仪器

  • ON, TRUE, or 1: 启用并计时仪器

  • COUNTED: 启用并计数(而不是计时)仪器

每个 --performance-schema-instrument 选项只能指定一个仪器名称,但可以多次指定该选项以配置多个仪器。此外,允许在仪器名称中使用模式来配置匹配该模式的仪器。要配置所有条件同步仪器为启用和计数,请使用以下选项:

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

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

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

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

较长的仪器名称字符串优先于较短的模式名称,无论顺序如何。有关指定模式以选择仪器的信息,请参阅 第 29.4.9 节,“命名仪器或消费者以进行过滤操作”

无法识别的仪器名称将被忽略。可能是插件稍后安装创建了该仪器,从而识别和配置该名称。

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

--performance-schema-consumer-consumer_name=value

这里, consumer_name 是一个消费者名称,例如 events_waits_history,而 value 是以下值之一:

  • OFF, FALSE, or 0: 不收集事件 для消费者

  • ON, TRUE, or 1: 收集事件 для消费者

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

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

允许的消费者名称可以在 setup_consumers 表中找到。模式不允许。消费者名称在 setup_consumers 表中使用下划线,但对于在启动时设置的消费者,名称中的破折号和下划线是等效的。

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

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_schemaONOFF,以指示性能架构是否启用或禁用。其他变量指示表大小(行数)或内存分配值。

Note

启用性能架构后,性能架构实例的数量将影响服务器内存占用,可能会很大。性能架构自动缩放许多参数,以便仅使用所需的内存;请参阅 第 29.17 节,“性能架构内存分配模型”

要更改性能架构系统变量的值,请在服务器启动时设置它们。例如,在 my.cnf 文件中添加以下行,以更改等待事件的历史表大小:

[mysqld]
performance_schema
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

性能模式自动调整几个参数的值在服务器启动时,如果它们没有被明确设置。例如,它调整事件等待表的参数大小以这种方式。性能模式将内存分配增量,根据实际服务器负载来扩展内存使用,而不是在服务器启动时分配所有需要的内存。因此,许多大小参数无需设置。要查看哪些参数是自动调整或自动扩展的,请使用 mysqld --verbose --help 并检查选项描述,或者参阅 第 29.15 节,“性能模式系统变量”

对于每个未在服务器启动时设置的自动调整参数,性能模式根据以下系统值来确定如何设置其值,这些值被认为是关于您如何配置 MySQL 服务器的 提示

max_connections
open_files_limit
table_definition_cache
table_open_cache

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

在运行时, SHOW VARIABLES 显示自动调整参数的实际值。自动扩展参数显示为 -1。

如果性能模式被禁用,其自动调整和自动扩展参数将保持为 -1, SHOW VARIABLES 显示 -1。