• mysql配置


    MySQL 配置详解

    1 生产者 消费者

    Performance Schema允许在服务器启动时配置 instrument(检测仪器,生产者) 和 consumer configuration(消费者)。

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

    --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/% 仪器是内置的,无法在启动时禁用。

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

    --performance-schema-consumer-consumer_name=value
    

    此处consumer_name是消费者名称,例如events_waits_history,并且 value是以下值之一:

    • OFFFALSE0:不要为消费者收集事件
    • ONTRUE1:为消费者收集事件

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

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

    2 编译时配置

    Performance Schema 是强制性的,并且始终在其中进行编译。可以排除Performance Schema检测的某些部分。例如,要排除阶段和语句工具,请执行以下操作:

    shell> cmake . 
            -DDISABLE_PSI_STAGE=1 
            -DDISABLE_PSI_STATEMENT=1
    

    2.1 编译安装功能验证

    要验证服务器是否使用Performance Schema支持构建,请检查其帮助输出。如果Performance Schema可用,那么输出将提及几个以下名称开头的变量performance_schema

    shell> mysqld --verbose --help
    ...
      --performance_schema
                          Enable the performance schema.
      --performance_schema_events_waits_history_long_size=#
                          Number of rows in events_waits_history_long.
    ...
    

    还可以连接到服务器,使用SHOW ENGINES,在以下输出中查找用于PERFORMANCE_SCHEMA命名存储引擎的行。

    mysql> SHOW ENGINESG
    ...
          Engine: PERFORMANCE_SCHEMA
         Support: YES
         Comment: Performance Schema
    Transactions: NO
              XA: NO
      Savepoints: NO
    ...
    

    如果在构建时未将PERFORMANCE_SCHEMA配置到服务器中,则在SHOW ENGINES输出中将不会显示这行 。但是可能会在SHOW DATABASES的输出中看到列出的performance_schema内容,但其中没有表格,将无法使用它。

    3 启用时配置

    SHOW ENGINES表示PERFORMANCE_SCHEMA可用,而不是已启用。要启用它,必须在服务器启动时这样做。

    要使用 MySQL Performance Schema必须在服务器启动时启用它,以启用 event 集合。

    MySQLPerformance Schema则默认情况下是启用的。要显式启用或禁用它,请在将performance_schema 变量设置为适当值的情况下启动服务器。改参数为只读变量,无法在线调整,修改需要重启数据库服务。例如,在my.cnf文件中使用以下行:

    [mysqld]
    performance_schema=ON
    

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

    3.1 启动选项

    performance_schema有哪些启动选项呢?我们可以通过如下命令行命令进行查看:

    [root@localhost ~]# mysqld --verbose --help |grep performance-schema |grep -v '--' |sed '1d' |sed '/[0-9]+/d'
    ......
    performance-schema-consumer-events-stages-current FALSE
    performance-schema-consumer-events-stages-history FALSE
    performance-schema-consumer-events-stages-history-long FALSE
    performance-schema-consumer-events-statements-current TRUE
    performance-schema-consumer-events-statements-history TRUE
    performance-schema-consumer-events-statements-history-long FALSE
    performance-schema-consumer-events-transactions-current FALSE
    performance-schema-consumer-events-transactions-history FALSE
    performance-schema-consumer-events-transactions-history-long FALSE
    performance-schema-consumer-events-waits-current FALSE
    performance-schema-consumer-events-waits-history FALSE
    performance-schema-consumer-events-waits-history-long FALSE
    performance-schema-consumer-global-instrumentation TRUE
    performance-schema-consumer-statements-digest TRUE
    performance-schema-consumer-thread-instrumentation TRUE
    performance-schema-instrument  
    ......
    

    下面将对这些启动选项进行简单描述(这些启动选项是用于指定consumersinstruments配置项在MySQL启动时是否跟随打开的,之所以叫做启动选项,是因为这些需要在mysqld启动时就需要通过命令行指定或者需要在my.cnf中指定,启动之后通过show variables命令无法查看,因为他们不属于system variables

    3.1.1 当前语句事件

    • performance_schema_consumer_events_statements_current=TRUE

    是否在mysql server启动时就开启events_statements_current表的记录功能(该表记录当前的语句事件信息),启动之后也可以在setup_consumers表中使用UPDATE语句进行动态更新setup_consumers配置表中的events_statements_current配置项,默认值为TRUE

    3.1.2 历史语句事件

    • performance_schema_consumer_events_statements_history=TRUE

    performance_schema_consumer_events_statements_current选项类似,但该选项是用于配置是否记录语句事件短历史信息,默认为TRUE

    3.1.3 历史语句事件(long)

    • performance_schema_consumer_events_stages_history_long=FALSE

    performance_schema_consumer_events_statements_current选项类似,但该选项是用于配置是否记录语句事件长历史信息,默认为FALSE

    3.1.4 其他类型事件

    • 除了statement(语句)事件之外,还支持:wait(等待)事件、state(阶段)事件、transaction(事务)事件,他们与statement事件一样都有三个启动项分别进行配置,但这些等待事件默认未启用,如果需要在MySQL Server启动时一同启动,则通常需要写进my.cnf配置文件中
    performance-schema-consumer-events-stages-current FALSE
    performance-schema-consumer-events-stages-history FALSE
    performance-schema-consumer-events-stages-history-long FALSE
    performance-schema-consumer-events-statements-current TRUE
    performance-schema-consumer-events-statements-history TRUE
    performance-schema-consumer-events-statements-history-long FALSE
    performance-schema-consumer-events-transactions-current FALSE
    performance-schema-consumer-events-transactions-history FALSE
    performance-schema-consumer-events-transactions-history-long FALSE
    performance-schema-consumer-events-waits-current FALSE
    performance-schema-consumer-events-waits-history FALSE
    performance-schema-consumer-events-waits-history-long FALSE
    

    3.1.5 全局表

    • performance_schema_consumer_global_instrumentation=TRUE

    是否在MySQL Server启动时就开启全局表,如:

    • mutex_instances
    • rwlock_instances
    • cond_instances
    • file_instances
    • users
    • hostsaccounts
    • socket_summary_by_event_name
    • file_summary_by_instance等;

    大部分的全局对象计数统计和事件汇总统计信息表的记录功能,启动之后也可以在setup_consumers表中使用UPDATE语句进行动态更新全局配置,默认值为TRUE

    3.1.6 语句摘要表

    • performance_schema_consumer_statements_digest=TRUE

    是否在MySQL Server启动时就开启events_statements_summary_by_digest 表的记录功能,启动之后也可以在setup_consumers表中使用UPDATE语句进行动态更新digest配置项,默认值为TRUE

    4 配置状态

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

    Performance Schema 包含几个提供 configuration 信息的系统变量:

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

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

    [mysqld]
    performance_schema
    performance_schema_events_waits_history_size=20
    performance_schema_events_waits_history_long_size=15000
    

    4.1 自动调整

    如果未明确设置,performance_schema将在服务器启动时自动调整其几个参数的值。

    例如,它通过这种方式调整控制events 等待表大小的参数。Performance Schema以递增方式分配 memory将其内存使用量扩展到实际服务器负载,而不是在服务器启动期间分配其所需的所有内存。因此,根本不需要设置许多size参数。要查看哪些参数是自动调整大小或自动缩放的,请使用mysqld --verbose --help并检查选项说明,或参见 第25.15节“性能模式系统变量”

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

    max_connections
    open_files_limit
    table_definition_cache
    table_open_cache
    

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

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

    如果禁用了 Performance Schema,则其自动调整和自动缩放的参数将保持设置为-1,[SHOW VARIABLES显示-1。

    自用博文.不限传播.欢迎留言.共同进步.
  • 相关阅读:
    调优Java virtual machine常见问题汇总整理
    Social Media POC KT Session
    框架Hibernate笔记系列 基础Session
    JVM相关命题的博客整理及总结
    项目总结笔记系列 wsTax KT Session1
    项目总结笔记系列 Autonomy IDOL Server KT Session1
    项目总结笔记系列 Maven Session2
    项目总结笔记系列 Maven Session1
    Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)
    循环有序数组查找
  • 原文地址:https://www.cnblogs.com/mingetty/p/12095124.html
Copyright © 2020-2023  润新知