安排详解 | performance_schema全方位介绍(二)

| MILLISECOND |1036| 1 |168|

MySQL Performance-Schema(一) 配置表,performanceschema

      performance-schema最早在MYSQL
伍.5中冒出,而前几日五.陆,五.七中performance-Schema又添加了越多的监察项,总括音信也更丰富,越来越有ORACLE-AWCR-V计算音讯的赶脚,真乃DBA童鞋举行质量检查判断分析的佛法。本文主要讲Performance-Schema中的配置表,通过安顿表能大致了然performance-schema的全貌,为一连使用和深深通晓做准备。

配置表

Performance-Schema中任重(英文名:rèn zhòng)而道远有6个布局表,具体如下:

[email protected]_schema
06:03:09>show tables like ‘%setup%’;
+—————————————-+
| Tables_in_performance_schema (%setup%) |
+—————————————-+
| setup_actors |
| setup_consumers |
| setup_instruments |
| setup_objects |
| setup_timers |
+—————————————-+

1.setup_actors用于配置user维度的监督,私下认可境况下监察和控制所有用户线程。
[email protected]_schema
05:47:27>select * from setup_actors;
+——+——+——+
| HOST | USER | ROLE |
+——+——+——+
| % | % | % |
+——+——+——+

2.setup_consumers表用于配置事件的消费者类型,即收集的风云结尾会写入到怎样总计表中。
[email protected]_schema
05:48:16>select * from setup_consumers;
+——————————–+———+
| NAME | ENABLED |
+——————————–+———+
| events_stages_current | NO |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | NO |
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO |
| global_instrumentation | YES |
| thread_instrumentation | YES |
| statements_digest | YES |
+——————————–+———+
能够见到有拾个consumer,若是不想关怀有些consumer,能够将ENABLED设置为NO,比如events_statements_history_long设置为NO,
则收集事件不会写入到相应的表events_statements_history_long中。10个consumer不是平级的,存在多重层次关系。具体如下表:
global_instrumentation
 |– thread_instrumentation
   |– events_waits_current
     |– events_waits_history
     |– events_waits_history_long
   |– events_stages_current
     |– events_stages_history
     |– events_stages_history_long
   |– events_statements_current
     |– events_statements_history
     |– events_statements_history_long
 |– statements_digest

多层次的consumer遵循叁个主导规则,惟有上一层次的为YES,才会继续检查该本层为YES
or
NO。global_instrumentation是最高级别consumer,假诺它设置为NO,则有所的consumer都会忽视。假设只开辟global_instrumentation,而关门大吉全体别的子consumer(设置为NO),则只收集全局维度的统计新闻,比如xxx_instance表,而不会征集用户维度,语句维度的新闻。第一层次的是thread_instrumentation,用户线程维度的总计消息,比如xxx_by_thread表,别的1个是statements_digest,这么些用于全局计算SQL-digest的新闻。第一层次是语句维度,包罗events_waits_current,events_stages_current和events_statements_current,分别用于总括wait,stages和statement新闻,第5层次是野史表音讯,重要包罗xxx_history和xxx_history_long。

3.setup_instruments表用于配置一条条实际的instrument,首要含有四大类:idle,stage/xxx,statement/xxx,wait/xxx.
[email protected]_schema
06:25:50>select name,count(*) from setup_instruments group by
LEFT(name,5);
+———————————+———-+
| name | count(*) |
+———————————+———-+
| idle | 1 |
| stage/sql/After create | 111 |
| statement/sql/select | 170 |
| wait/synch/mutex/sql/PAGE::lock | 296 |
+———————————+———-+
idle表示socket空闲的岁月,stage类表示语句的各类执行阶段的总括,statement类总计语句维度的新闻,wait类总计种种等待事件,比如IO,mutux,spin_lock,condition等。从上表统计结果来看,能够着力看到每类的instrument数目,stage包罗110个,statement包涵1七1捌个,wait包蕴2玖拾贰个。

4.setup_objects表用于配置监察和控制对象,私下认可情状下拥有mysql,performance_schema和information_schema中的表都不监察和控制。而任何DB的持有表都监察和控制。

[email protected]_schema
06:25:55>select * from setup_objects;
+————-+——————–+————-+———+——-+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+————-+——————–+————-+———+——-+
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
+————-+——————–+————-+———+——-+

5.setup_timers表用于配置每种类型指令的计算时间单位。MICROSECOND表示总括单位是神秘,CYCLE表示总计单位是挂钟周期,时间衡量与CPU的主频有关,NANOSECOND表示计算单位是飞秒,关于每体系型的求实意思,能够参见performance_timer那么些表。由于wait类包涵的都以等待事件,单个SQL调用次数比较多,因而挑选代价最小的衡量单位cycle。但不论是接纳哪个种类衡量单位,最后总括表中执会考察总括局计的小运都会装换成阿秒。

[email protected]_schema
06:29:50>select \
from setup_timers;
+———–+————-+
| NAME | TIMER_NAME |
+———–+————-+
| idle | MICROSECOND |
| wait | CYCLE |
| stage | NANOSECOND |
| statement | NANOSECOND |
+———–+————-+*

陈设方式

**     
私下认可意况下,setup_instruments表只开辟了statement和wait/io部分的下令,setup_consumer表中诸多consumer也绝非打开。为了开辟供给的选项,能够经过update语句间接改动配置表,并且修改后方可即时生效,但那种措施必需得运维服务器后才方可修改,并且不能够持久化,重启后,又得重复设置1次。从5.陆.四发端提供了my.cnf的安排方式,格式如下:

1.安装采集的instrument
performance_schema_instrument=’instrument_name=value’
(一)打开wait类型的指令
performance_schema_instrument=’wait/%’
(二)打开装有指令
performance_schema_instrument=’%=on’

2.设置consumer
performance_schema_consumer_xxx=value
(1)打开 events_waits_history consumer

performance_schema_consumer_events_waits_current=on

performance_schema_consumer_events_waits_history=on

此处要专注consumer的层系关系, events_waits_history处于第6层,由此设置它时,要确认保障events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,才能见效。由于暗中认可thread_instrumentation和global_instrumentation都是YES,因而只须求展现设置events_waits_current和events_waits_current即可。

三.设置总结表大小
所有的performance_schema表均选取PE智跑FOHummerH二MANCE_SCHEMA存款和储蓄引擎,表中的具备数据只存在内部存款和储蓄器,表的轻重在系统起先化时1度
定点好,因而占有的内存是迟早的。能够由此陈设来定制具体每种表的记录数。
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

 

Performance-Schema(1)
配置表,performanceschema performance-schema最早在MYSQL
5.5中出现,而现行反革命五.陆,五.7中performance-Schema又添加了越多的监察和控制项,统…

MySQL Performance-Schema(一) 配置表

performance-schema最早在MYSQL
五.5中冒出,而后天⑤.陆,5.七中performance-Schema又添加了愈多的监督项,总结消息也更丰硕,越来越有ORACLE-AW奇骏总计音讯的赶脚,真乃DBA童鞋进行品质会诊分析的教义。本文首要讲Performance-Schema中的配置表,通过配备表能大致精晓performance-schema的全貌,为后续使用和深刻明白做准备。

 

配置表

 

Performance-Schema中根本有几个布局表,具体如下:

 

[email protected]_schema
06:03:09>show tables like ‘%setup%’;

+—————————————-+

| Tables_in_performance_schema (%setup%) |

+—————————————-+

| setup_actors |

| setup_consumers |

| setup_instruments |

| setup_objects |

| setup_timers |

+—————————————-+

 

1.setup_actors用于配置user维度的监督,暗中同意意况下监控全数用户线程。

[email protected]_schema
05:47:27>select * from setup_actors;

+——+——+——+

| HOST | USER | ROLE |

+——+——+——+

| % | % | % |

+——+——+——+

 

2.setup_consumers表用于配置事件的顾客类型,即收集的轩然大波最后会写入到什么样总结表中。

[email protected]_schema
05:48:16>select * from setup_consumers;

+——————————–+———+

| NAME | ENABLED |

+——————————–+———+

| events_stages_current | NO |

| events_stages_history | NO |

| events_stages_history_long | NO |

| events_statements_current | YES |

| events_statements_history | NO |

| events_statements_history_long | NO |

| events_waits_current | NO |

| events_waits_history | NO |

| events_waits_history_long | NO |

| global_instrumentation | YES |

| thread_instrumentation | YES |

| statements_digest | YES |

+——————————–+———+

能够看到有拾叁个consumer,假若不想关切有个别consumer,能够将ENABLED设置为NO,比如events_statements_history_long设置为NO,

则收集事件不会写入到相应的表events_statements_history_long中。拾2个consumer不是平级的,存在多重层次关系。具体如下表:

global_instrumentation 

 |– thread_instrumentation

   |– events_waits_current

     |– events_waits_history

     |– events_waits_history_long

   |– events_stages_current

     |– events_stages_history

     |– events_stages_history_long

   |– events_statements_current

     |– events_statements_history

     |– events_statements_history_long

 |– statements_digest

 

多层次的consumer遵守几个中坚规则,只有上壹层次的为YES,才会继续检查该本层为YES
or
NO。global_instrumentation是最高级别consumer,就算它设置为NO,则拥有的consumer都会忽略。固然只开辟global_instrumentation,而倒闭全部别的子consumer(设置为NO),则只收集全局维度的总结音讯,比如xxx_instance表,而不会征集用户维度,语句维度的音信。第一层次的是thread_instrumentation,用户线程维度的总括消息,比如xxx_by_thread表,其它二个是statements_digest,那个用于全局总括SQL-digest的音信。第一层次是语句维度,包涵events_waits_current,events_stages_current和events_statements_current,分别用于计算wait,stages和statement消息,第4层次是野史表消息,首要总结xxx_history和xxx_history_long。

 

3.setup_instruments表用于配置一条条现实的instrument,主要含有肆大类:idle,stage/xxx,statement/xxx,wait/xxx.

[email protected]_schema
06:25:50>select name,count(*) from setup_instruments group by
LEFT(name,5);

+———————————+———-+

| name | count(*) |

+———————————+———-+

| idle | 1 |

| stage/sql/After create | 111 |

| statement/sql/select | 170 |

| wait/synch/mutex/sql/PAGE::lock | 296 |

+———————————+———-+

 

idle表示socket空闲的时间,stage类表示语句的各种执行等级的总括,statement类总括语句维度的消息,wait类总括种种等待事件,比如IO,mutux,spin_lock,condition等。从上表计算结果来看,能够主导看到每类的instrument数目,stage包罗112个,statement包涵1七拾几个,wait包罗2九两个。

 

4.setup_objects表用于配置监察和控制对象,暗许景况下全数mysql,performance_schema和information_schema中的表都不监察和控制。而任何DB的有所表都监察和控制。

 

[email protected]_schema
06:25:55>select * from setup_objects;

+————-+——————–+————-+———+——-+

| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |

+————-+——————–+————-+———+——-+

| TABLE | mysql | % | NO | NO |

| TABLE | performance_schema | % | NO | NO |

| TABLE | information_schema | % | NO | NO |

| TABLE | % | % | YES | YES |

+————-+——————–+————-+———+——-+

 

5.setup_timers表用于配置每体系型指令的总括时间单位。MICROSECOND表示计算单位是神秘,CYCLE表示总计单位是石英钟周期,时间衡量与CPU的主频有关,NANOSECOND表示计算单位是阿秒,关于每体系型的现实性意思,能够参照performance_timer这么些表。由于wait类包括的都以等待事件,单个SQL调用次数比较多,因而挑选代价最小的心路单位cycle。但无论是采用哪一种度量单位,最后总计表国民党的中央委员会执委调查总括局计的岁月都会装换成阿秒。

 

[email protected]_schema
06:29:50>select * from setup_timers;

+———–+————-+

| NAME | TIMER_NAME |

+———–+————-+

| idle | MICROSECOND |

| wait | CYCLE |

| stage | NANOSECOND |

| statement | NANOSECOND |

+———–+————-+

 

布署格局

 

暗中同意境况下,setup_instruments表只开辟了statement和wait/io部分的指令,setup_consumer表中许多consumer也绝非打开。为了开辟需求的选项,能够经过update语句间接改动配置表,并且修改后方可马上生效,但那种艺术必需得运转服务器后才方可修改,并且不可能持久化,重启后,又得重复设置一次。从5.陆.4起来提供了my.cnf的安排方式,格式如下:

 

一.安装采集的instrument

performance_schema_instrument=’instrument_name=value’

(1)打开wait类型的授命

performance_schema_instrument=’wait/%’

(二)打开装有指令

performance_schema_instrument=’%=on’

 

2.设置consumer

performance_schema_consumer_xxx=value

(1)打开 events_waits_history consumer

 

performance_schema_consumer_events_waits_current=on

 

performance_schema_consumer_events_waits_history=on

 

那里要注意consumer的层系关系,
events_waits_history处于第6层,由此设置它时,要确认保障events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,才能见效。由于私下认可thread_instrumentation和global_instrumentation都以YES,由此只供给显示设置events_waits_current和events_waits_current即可。

 

三.装置总结表大小

所有的performance_schema表均采纳PEHighlanderFOXC60MANCE_SCHEMA存款和储蓄引擎,表中的具备数据只存在内部存储器,表的大大小小在系统先河化时一度

稳定好,因而占有的内存是任天由命的。能够因此布置来定制具体每一个表的记录数。

performance_schema_events_waits_history_size=20

performance_schema_events_waits_history_long_size=15000

Performance-Schema(1) 配置表
performance-schema最早在MYSQL
5.5中冒出,而近年来五.陆,伍.7中performance-Schema又添加了越多的监督项,总计音信也更丰盛…

是还是不是在mysql
server运行时就开启events_statements_current表的记录成效(该表记录当前的言语事件音信),运营以往也足以在setup_consumers表中运用UPDATE语句实行动态更新setup_consumers配置表中的events_statements_current配置项,暗许值为TRUE

是不是在MySQL
Server运维时就启用某个采集器,由于instruments配置项多达数千个,所以该配置项帮忙key-value格局,还协理%号实行通配等,如下:

| % |% | % |YES | YES |

performance_timers表中著录了server中有如何可用的事件计时器(注意:该表中的配置项不扶助增加和删除改,是只读的。有哪些计时器就表示近年来的版本扶助什么计时器),setup_timers配置表中的陈设项引用此表中的计时器

mysql> SELECT * FROM performance_timers;

  • performance_schema_consumer_events_stages_history_long=FALSE

performance_schema_events_statements_history_long_size=10000

| wait |CYCLE |

root@localhost : performance_schema 05:46:17> update threads
setINSTRUMENTED= ‘NO’whereTYPE= ‘BACKGROUND’;

mysql>UPDATE setup_instruments SET ENABLED = IF(ENABLED = ‘YES’,
‘NO’, ‘YES’) WHERE NAME = ‘wait/synch/mutex/mysys/TMPDIR_mutex’;

当大家接手3个外人安装的MySQL数据库服务器时,可能你并不知底本身安装的MySQL版本是或不是帮忙performance_schema时,大家得以通过mysqld命令查看是还是不是匡助Performance
Schema

  • NAME:consumers配置名称
  • ENABLED:consumers是或不是启用,有效值为YES或NO,此列能够接纳UPDATE语句修改。若是供给禁止使用consumers就安装为NO,设置为NO时,server不会维护这个consumers表的始末新增和删除,且也会倒闭consumers对应的instruments(假诺未有instruments发现采集数据尚未其余consumers消费的话)
  • PS:对于setup_consumers表,不一致意采用TRUNCATE TABLE语句

| OBJECT_TYPE |OBJECT_SCHEMA | OBJECT_NAME |ENABLED | TIMED |

三).
wait/synch/rwlock:三个线程使用一个读写锁对象对有些特定变量举办锁定,以预防别的线程同时做客,对于使用共享读锁锁定的财富,多个线程能够而且做客,对于利用独占写锁锁定的财富,只有3个线程能而且做客,该instruments用于收集发生读写锁锁定时的事件消息

#切换instruments开关的景观,“翻转”ENABLED值,使用ENABLED字段值+
if函数, IF(ENABLED = ‘YES’, ‘NO’,
‘YES’)表示,如若ENABLED值为YES,则修改为NO,不然修改为YES:

–performance-schema-instrument= ‘%=ON’

TYPE: FOREGROUND

shell> mysqld –verbose — help

setup_objects表列含义如下:

performance-schema-consumer-events-waits-current FALSE

## 除了joe和sam用户之外,其余任何用户从随机主机连接到mysql
server时,相配到第二个UPDATE语句更新之后的暗中同意配置行,threads表中对应配置行的INSTRUMENTED和HISTOBMWX叁Y列值变为NO

setup_instruments 表列出了instruments
列表配置项,即意味着了什么样事件辅助被采访:

在MySQL运行之后,大家就不可能利用运维选项来开关相应的consumers和instruments了,此时,大家什么样依据本人的急需来灵活地开关performance_schema中的采集新闻呢?(例如:默许配置下洋洋布署项尚未开启,大家兴许须要即时去修改配置,再如:高并发场景,多量的线程连接到MySQL,执行各个各种的SQL时发生多量的事件音信,而大家只想看某2个对话爆发的轩然大波新闻时,也说不定需求即时去修改配置),大家可以经过改动performance_schema下的几张配置表中的配备项完成

2).
与大部分等候事件不相同,表I/O等待能够归纳其余等待。例如,表I/O大概包涵文件I/O或内部存款和储蓄器操作。因而,表I/O等待的轩然大波在events_waits_current表中的记录普通有两行(除了wait/io/table/sql/handler的事件记录之外,恐怕还富含一行wait/io/file/myisam/dfile的风云记录)。那种能够称为表IO操作的原子事件

XA: NO

留神:尽管我们能够通过cmake的编写翻译选项关闭掉有些performance_schema的成效模块,可是,日常我们不建议如此做,除非你尤其通晓后续不容许利用到那几个作用模块,不然继续想要使用被编写翻译时关闭的模块,还索要重新编写翻译。

performance_schema有如何运营选项呢?大家能够通过如下命令行命令举行查看:

admin@localhost : performance_schema 09 :16:59> select * from
setup_instruments where name like ‘wait/io/file/innodb/%’;

mysql> SELECT * FROM setup_consumers;

## 当sam从随机主机(%相配)连接到mysql
server时,则延续符合第多少个INSE库罗德T语句插入的布局行,threads表中对应配置行的INSTRUMENTED列值变为NO,HISTOLX570Y列值为YES

+————————————–+———+——-+

+—————————–+———+——-+

mysql> SELECT * FROM setup_objects;

Rows matched: 40 Changed: 40 Warnings: 0

对此后台线程,对setup_actors表的修改不见效,要是要干涉后台线程暗中同意的安装,需求查询threads表找到呼应的线程,然后利用UPDATE语句直接改动threads表中的INSTRUMENTED和HISTO福特ExplorerY列值。

+——+——+——+———+———+

Number of rows inevents_waits_history_long.

上面,大家将对那一个system
variables(以下称为变量)中几个供给关爱的展开简易解释(个中多数变量是-壹值,代表会活动调整,无需太多关注,此外,大于-1值的变量在多数时候也够用,假如无特需,不建议调整,调整这几个参数会追加内部存款和储蓄器使用量)

mysql> SELECT * FROM setup_timers;

| events_statements_history_long |NO |

#
此时,threads表中对应用户的前台线程配置行中INSTRUMENTED和HISTOMuranoY列生效值如下

|events_statements_history | YES |

instruments具有树形结构的命名空间,从setup_instruments表中的NAME字段上能够见见,instruments名称的结合从左到右,最左侧的是顶层instruments类型命名,最右侧是一个切实的instruments名称,有一对顶层instruments未有任何层级的零部件(如:transaction和idle,那么那一个顶层类型既是种类又是具体的instruments),有局地顶层instruments具有下层instruments(如:wait/io/file/myisam/log),3个层级的instruments名称对应的组件数量取决于instruments的花色。

  • 官方文书档案中并未有找到每二个instruments具体的印证文档,官方文书档案中列出如下多少个原因: *
    instruments是服务端代码,所以代码或者时时变动 *
    instruments总数据有数百种,全体列出不现实 *
    instruments会因为您安装的本子分化而有所分裂,每三个版本所帮衬的instruments能够透过询问setup_instruments表获取

私下认可配置中拉开监视的目的不含有mysql,INFOGL450MATION_SCHEMA和performance_schema数据库中的所有表(从地点的音信中得以观望那多少个库的enabled和timed字段都为NO,注意:对于INFOCRUISERMATION_SCHEMA数据库,即使该表中有一行配置,但是不管该表中如何设置,都不会监察和控制该库,在setup_objects表中information_schema.%的安插行仅作为二个缺省值)

Rows matched: 2 Changed: 2 Warnings: 0

mysql>UPDATE setup_consumers SET ENABLED =’NO’WHERE NAME
=’events_waits_current’;

  • 对threads表的拜会不要求互斥体,对server质量影响微乎其微。
    而使用INFOPAJEROMATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST查询线程消息的措施会成本一定品质,因为他俩须要互斥体
  • threads表为每种线程提供附加信息,例如:它是前台依然后台线程,以及与线程相关联的server内部新闻
  • threads表提供有关后台线程的新闻,而INFOWranglerMATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST无法提供
  • 能够因此threads表中的INSTRUMENTED字段灵活地动态开关有个别线程的监视功效、HISTO奥德赛Y字段灵活地动态开关有个别线程的野史事件日志记录作用。要控制新的前台线程的开端INSTRUMENTED和HISTO奥迪Q伍Y列值,通过setup_actors表的HOST、
    USE悍马H2对有些主机、用户展开布局。要控制已开立线程的搜集和历史事件记录效能,通过threads表的INSTRUMENTED和HISTO奥迪Q7Y列进行设置
  • 对于INFORMATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST,要求有PROCESS权限,对于threads表只要有SELECT权限就足以查看全体用户的线程消息

## 当joe从localhost连接到mysql
server时,则三番五次符合第1个INSELacrosseT语句插入的计划行,threads表中对应配置行的INSTRUMENTED和HISTO本田CR-VY列值变为YES

Rows matched: 2 Changed: 2 Warnings: 0

# 开启全体后台线程的风云采访

|MICROSECOND | 1000000 |1| 136 |

名称中给定组件的阐述取决于其左边的零件。例如,myisam突显在以下四个名称:

performance-schema-consumer-statements-digest TRUE

| wait/synch/rwlock/sql/LOCK_grant |YES | YES |

  • 控制events_statements_history_long表中的最大行数,该参数控制全数会话在events_statements_history_long表中可见存放的总事件记录数,当先那么些界定之后,最早的笔录将被掩盖
  • 全局变量,只读变量,整型值,伍.六.叁版本引进 *
    5.6.x版本中,伍.6.五及其从前的版本私下认可为10000,五.六.陆会同之后的版本暗中同意值为-一,常常状态下,自动测算的值都以一千0 *
    5.七.x版本中,默许值为-1,平时状态下,自动测算的值都是一千0

| wait/io/file/sql/binlog |YES | YES |

mysql>UPDATE setup_consumers SET ENABLED =’NO’wherename like
‘%history%’;

闭馆与开启全部后台线程的监督采集作用

setup_actors表字段含义如下:

| EVENT |information_schema | % |NO | NO |

| NANOSECOND |1000000000| 1 |112|

产品:沃趣科学和技术

下壹篇将为大家分享 《事件记录 |
performance_schema 全方位介绍》
,多谢您的读书,大家不见不散!
重返新浪,查看越来越多

  • instruments名称前缀表示instruments的项目(如wait/io/file/myisam/log中的wait),该前缀名称还用于在setup_timers表中配置有个别事件类型的定时器,也被称作顶层组件
  • instruments名称后缀部分来自instruments本人的代码。后缀恐怕包罗以下层级的组件: *
    首要组件的名目(如:myisam,innodb,mysys或sql,那一个都以server的子系统模块组件)或插件名称 *
    代码中变量的名称,格式为XXX(全局变量)或CCC::MMM(CCC表示一个类名,MMM表示在类CCC功能域中的三个成员对象),如:’wait/synch/cond/sql/COND_thread_cache’
    instruments中的COND_thread_cache,’wait/synch/mutex/mysys/THR_LOCK_myisam’
    instruments中的THR_LOCK_myisam,’wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_index’
    instruments中的MYSQL_BIN_LOG::LOCK_index

PROCESSLIST_DB: NULL

1).
表I/O操作相关的instruments。那些类型包罗了对持久基表或权且表的行级访问(对数据行获得,插入,更新和删除),对于视图来说,instruments检验时会参照被视图引用的基表访问意况

mysql>UPDATE setup_instruments SET ENABLED = ‘NO’;

+——+——+——+———+———+

+————-+—————+————-+———+——-+

PROCESSLIST_TIME: 27439

#剥夺钦点的某一个instruments:

| FUNCTION |information_schema | % |NO | NO |

  • performance_schema_consumer_thread_instrumentation=TRUE
  • 只有在Setup_instruments和setup_objects中的ENABLED列都为YES时,表的instruments才会转移事件音信
  • 只有在Setup_instruments和setup_objects中的TIMED列都为YES时,表的instruments才会启用计时器作用(收集时间新闻)
  • 例如:要监视db1.t1、db1.t2、db2.%、db3.%这些表,setup_instruments和setup_objects五个表中有如下配置项

…………

  • 示例,假如setup_actors表中有如下HOST和USECRUISER值: * USER =’literal’
    and HOST =’literal’ * USER =’literal’ and HOST =’%’ * USER =’%’
    and HOST =’literal’ * USER =’%’ and HOST =’%’
  • 协作顺序很重要,因为分裂的分外行恐怕全部不相同的USEEvoque和HOST值(mysql中对此用户帐号是利用user@host进行区分的),根据相称行的ENABLED和HISTO奥德赛Y列值来决定对各种HOST,USEPAJERO或ACCOUNT(USERAV四和HOST组合,如:user@host)对应的线程在threads表中变化对应的相称行的ENABLED和HISTO陆风X8Y列值
    ,以便控制是还是不是启用相应的instruments和野史事件记录,类似如下: *
    当在setup_actors表中的最棒相配行的ENABLED =
    YES时,threads表中对应线程的布局行中INSTRUMENTED列值将变为YES,HISTOKugaY
    列同理 * 当在setup_actors表中的最好相称行的ENABLED =
    NO时,threads表中对应线程的计划行中INSTRUMENTED列值将变为NO,HISTO酷威Y
    列同理 *
    当在setup_actors表中找不到至极时,threads表中对应线程的配备行中INSTRUMENTED和HISTO奥迪Q5Y值值将变为NO *
    setup_actors表配置行中的ENABLED和HISTOLacrosseY列值可以并行独立设置为YES或NO,互不影响,二个是是不是启用线程对应的instruments,一个是是不是启用线程相关的野史事件记录的consumers
  • 暗中同意意况下,全部新的前台线程启用instruments和历史事件采访,因为setup_actors表中的预设值是host=’%’,user=’%’,ENABLED=’YES’,HISTOSportageY=’YES’的。假使要执行越来越小巧的匹配(例如仅对壹些前台线程进行监视),那就必供给对该表中的私下认可值举行改动,如下:

threads表字段含义如下:

……

Transactions: NO

与performance_schema_consumer_events_statements_current选项类似,但该选用是用以配置是还是不是记录语句事件短历史音讯,暗许为TRUE

+————-+————-+

| wait/io/file/innodb/innodb_log_file |YES | YES |

| events_transactions_history |NO |

performance_schema在setup_objects表中实行询问相称时,假诺发现有些OBJECT_TYPE列值有多行,则会尝试着格外越多的布局行,如下(performance_schema依照如下顺序实行反省):

THREAD _OS_ID: 3652

…..

+————-+—————+————-+———+——-+

在上一篇 《初相识 |
performance_schema全方位介绍》
中简单介绍了什么样安顿与利用performance_schema,相信大家对performance_schema能够为大家提供哪些的品质数据已经有一个发端的认识,今日将辅导我们1块踏上密密麻麻第3篇的道路(全系共多少个篇章),在那一期里,我们将为我们无微不至授课performance_schema配置方式以及各类配置表的功能。下边,请跟随大家1块起来performance_schema系统的学习之旅吧。

| wait/lock/table/sql/handler |YES | YES |

是或不是在MySQL
Server运维时就翻开全局表(如:mutex_instances、rwlock_instances、cond_instances、file_instances、users、hostsaccounts、socket_summary_by_event_name、file_summary_by_instance等大多数的大局对象计数总计和事件汇总总括音讯表
)的记录功用,运维之后也足以在setup_consumers表中采纳UPDATE语句实行动态更新全局配置项

2rows inset ( 0. 00sec)

如果持久性表和权且表名称壹致,则在setup_objects表中实行相称时,针对那两连串型的表的卓殊规则都同时生效(不会发生贰个表启用监督,其它一个表不启用)

#
以上五个表中的布置项综合之后,唯有db1.t一、db二.%、%.%的表对象的instruments会被启用,db1.t贰和db三.%不会启用,因为那七个指标在setup_objects配置表中ENABLED和TIMED字段值为NO

| wait/synch/rwlock/sql/LOCK_sys_init_connect |YES | YES |

-DDISABLE_PSI_STATEMENT=1 #关闭STATEMENT事件监视器

performance-schema-consumer-events-statements-history- longFALSE

每种计时器的精度和数目相关的风味值会有所分裂,能够透过如下查询语句查看performance_timers表中著录的计时器和有关的特点音信:

Query OK, 40 rows affected (0.00 sec)

|events_stages_history_long | NO |

+————-+—————–+——————+—————-+

关门与开启除了当前一连之外的享无线程的轩然大波采访(不包含后台线程)

| events_waits_current |NO |

performance_schema_events_statements_history_size=10

  • 控制events_statements_summary_by_digest表中的最大行数。假若发生的说话摘抄音信超越此最大值,便无计可施继续存入该表,此时performance_schema会增多状态变量

PROCESSLIST_*始发的列提供与INFOCRUISERMATION_SCHEMA.PROCESSLIST表或SHOW
PROCESSLIST语句看似的新闻。但threads表中与此外四个消息来源有所不一样:

PROCESSLIST_INFO: NULL

+——+——+——+———+———+

与performance_schema_consumer_events_statements_current选项类似,但该选用是用于配置是还是不是记录语句事件长历史音讯,私下认可为FALSE

| TABLE |db3 | % |NO | NO |

root@localhost : performance_schema 05: 47: 44> update threads
setINSTRUMENTED= ‘NO’wherePROCESSLIST_ID!=connection_id();

| TRIGGER |information_schema | % |NO | NO |

performance-schema-consumer-events-stages-history- longFALSE

performance-schema-consumer-events-transactions-current FALSE

| NAME |ENABLED | TIMED |

+———————————-+———+

可以通过UPDATE语句来更改setup_timers.TIMER_NAME列值,以给分化的事件连串选项不一致的计时器,setup_timers.TIMER_NAME列有效值来自performance_timers.TIMER_NAME列值。

| statement |NANOSECOND |

| thread_instrumentation |YES |

(2)**setup_timers**表

对setup_timers表的修改会即时影响监控。正在实践的轩然大波也许会接纳修改在此之前的计时器作为开始时间,但大概会利用修改之后的新的计时器作为完毕时间,为了防止计时器更改后或许发生时间音讯收集到不足预测的结果,请在修改未来采用TRUNCATE TABLE语句来重置performance_schema中相关表中的总括消息。

  • 用于控制规范格局的SQL语句文本在存入performance_schema时的限定长度,该变量与max_digest_length变量相关(max_digest_length变量含义请自行查阅相关材质)
  • 全局变量,只读变量,暗许值十2四字节,整型值,取值范围0~104857六,伍.陆.二六和五.7.8本子中引进

| EVENT |performance_schema | % |NO | NO |

(一) 运行选项

| NAME |TIMER_NAME |

壹).
wait/synch/cond:三个线程使用三个处境来向其他线程发复信号公告他们正在等候的事务已经爆发了。若是3个线程正在等待那一个处境,那么它能够被那一个情形提醒并卫冕往下举行。若是是多少个线程正在等候那几个情景,则这么些线程都会被唤醒,并竞争他们正在等待的能源,该instruments用于采集某线程等待这一个财富时被打断的风云消息。

setup_objects表初阶内容如下所示:

| TABLE |db1 | t2 |NO | NO |

Rows matched: 40 Changed: 40 Warnings: 0

wait/lock:锁操作相关的instruments

performance-schema-consumer-events-transactions-history- longFALSE

  • performance_schema_consumer_statements_digest=TRUE

Savepoints: NO

events_xxx_summary_by_yyy_by_event_name表的记录成效,运转之后也能够在setup_consumers表中选取UPDATE语句进行动态更新线程配置项

注意:

| events_statements_current |YES |

  • events 输出表
    events_xxx_summary_by_yyy_by_event_name的开关由global_instrumentation控制,且表中是有定点数据行,不可清理,truncate或许关闭相关的consumers时只是不计算有关的instruments收集的events数据,相关字段为0值
  • 如果performance_schema在对setup_consumers表做检查时意识有些consumers配置行的ENABLED
    列值不为YES,则与那些consumers相关联的events输出表中就不会收取存款和储蓄任何事件记录
  • 高级别的consumers设置不为YES时,信赖于这几个consumers配置为YES时才会启用的那两个更低级别的consumers将联合被剥夺
网站地图xml地图