• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 性能架构启动配置

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

    默认情况下,性能模式处于启用状态。要明确启用或禁用它,请在将performance_schema变量设置为适当值的情况下启动服务器。例如,在服务器my.cnf文件中使用以下行:

    [mysqld]
    performance_schema=ON
    

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

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

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

    --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'
    

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

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

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

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

    --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_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_schema变量是ONOFF指示性能模式是启用还是禁用。其他变量指示表大小(行数)或内存分配值。

    注意

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

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

    [mysqld]
    performance_schema
    performance_schema_events_waits_history_size=20
    performance_schema_events_waits_history_long_size=15000
    

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

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

    max_connections
    open_files_limit
    table_definition_cache
    table_open_cache
    

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

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

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