美文网首页springboot
MYsql监控:全局监控workbench + profilin

MYsql监控:全局监控workbench + profilin

作者: colleen | 来源:发表于2021-08-18 17:09 被阅读0次

    Mysql有很多监控工具,有免费的workbench、innotop、Monitoring Tool;

    workbench比较简单,全局监控 重点关注仪表盘,下面是转的关于仪表盘的一些描述;

    下面是关于仪表盘的描述,我就不再重复啰嗦了;转自https://www.jianshu.com/p/bb42f18ae5c3

     MySQLworkbench可以在图形化仪表盘中显示服务器性能统计信息。如果想要显示仪表盘,请打开一个数据库服务器,然后从左侧导航中选择管理("management")选项卡。然后单击仪表盘("dashboard")。

    仪表盘位置

    下图显示了仪表盘中的信息布局

    注意 此功能需要MySQL server5.6或者更高版本

    仪表盘布局

    网络状态(Network Status)

    这里突出显示了Mysql服务器通过客户端连接发送和接受的网络流量的统计数据,包括传入网络流量,传出网络流量和客户端连接数量

    网络状态

    从上到下依次为:

    传入网络数量(Incoming Network Traffic)单位字节/秒

    传出网络数量(Outgoing Network Traffic)单位字节/秒

    客户端连接数量(Client connections)

    MySQL状态(MySQL status)

    这里突出显示了MySQL服务器主要活动和性能统计信息。数据包括开表缓存命中效率(MySQL是如何打开表的),执行的sql语句,以及SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER和DROP语句的计数(每秒)。

    MySQL Status

    从上到下依次是

    开表缓存命中率(Table Open Cache)。鼠标悬停有更详细信息

    sql语句执行量(SQL Statements Executed)

    各种主要SQL语句执行数量

    InnoDB状态(InnoDB Status)

    这里提供了由InnoDb储存引擎生成的InnoDB缓冲池和磁盘活动的概述。数据分为三组

    注意

    将鼠标悬停在图表上可查看其他信息,例如总计数。

    用法

    读请求(read reqs):InnoDB对缓冲池执行的逻辑读取请求数(每秒)

    写请求(write reqs):InnoDB对缓冲池执行的逻辑写请求数(每秒)

    磁盘读取(disk reads):InnoDB无法从缓冲池中进行逻辑读取的次数。这些必须从磁盘中读取

    InnoDB缓冲池使用情况(InnoDB Buffer Pool):正在使用的InnoDB缓冲池的百分比。鼠标悬停可以查看附加信息,比如使用率和空闲的页(InnoDB缓冲池

    写入的数据(data written):写入InnoDB重做日志文件的写入次数

    写入(writes):写入InnoDB重做日志文件的物理写入次数

    InnoDB磁盘写入(InnoDB Disk Writes):将鼠标悬停可以查看特定秒内的磁盘写入次数。可查看最后120s

    写入(writing):由InnoDB存储引擎使用文件操作写入的数据总量(以字节为单位)。

    双写缓存次数(Doublewrite Buffer):执行的双重缓存写入次数。

    InnoDB磁盘读取(InnoDB Disk Reads):将鼠标悬停可以查看特定秒内的磁盘读取次数。可查看最后120s

    读取(reading):由InnoDB存储引擎在文件操作中读取的数据总量(以字节为单位)。

    InnoDB Status

    作者:Swerve

    链接:https://www.jianshu.com/p/bb42f18ae5c3

    来源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

     


    Mysql-性能分析-Profiling(sql)调优

       如果技能水平较低,性能测试工程师至少应该把调优前后的第四步截图做下对比,并报告;

    下面是转自https://www.jianshu.com/p/36b35f84ccde的详细描述,我就不具体写了

    是什么

    Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于Sql调优的测量。

    怎么玩

    1.先查看是否开启了此功能:show variables like 'profiling%';

        默认情况下,参数出于关闭状态,为OFF状态

    2.开启Profiling:set profiling=1;

       开启此功能后,就能执行我们的SQL语句

    3.展示最近的SQL执行情况:show profiles;

        此命令展示最近执行的sql语句,默认是15次,一个示例如下:

    展示最近的15条

    Query_ID会一直递增,后期我们会使用这个id,来具体查询某一条SQL的执行耗时清单

    4.具体查看某一条SQL的执行细节:show profile cpu,block io for query 8;

    如下图为查询id=8的这条sql的执行细节,此处查询了cpu和block io这两种类型,其他可以选择的类型在图的下面展示:

    SQL执行具体细节

    可以使用的类型如下:

    ALL;显示所有的开销信息

    BLOCK IO:显示块IO相关开销

    CONTEXT SWITCHES:上下文切换相关开销

    CPU:显示CPU相关开销

    IPC:显示发送和接受相关开销

    MEMORY:显示内存相关开销

    PAGE FAULTS:显示页面错误相关开销

    SOURCE:显示和Source_function, Source_file,Source_line相关的相关开销

    SWAPS:显示交换次数相关开销

    应该重点关注什么

    请读者继续看前面的图SQL执行具体细节,左边Status列展示了一条SQL执行的从开始到清理的整个生命周期中执行的操作。如果在其生命周期阶段出现如下的情况的就要重视了:

    converting HEAP to MyISAM :查询结果太大,内存都不够用了往磁盘上面搬了

    Creating tmp table :创建了临时表,先拷贝到临时表,用完后再删除

    Copying to tmp table on disk:把内存中的临时表复制到磁盘中,这个很耗性能

    locked :这个就是指在等待锁的意思

    可以看看如下Creating tmp table的样例

    Creating tmp table的样例

    总结

    开启Profiling后,mysql会留下15条最近执行的sql的现场, 便于我们发现问题。

    Show profiles用来查最近的15条。

    Show profile用来展示每一个SQL执行阶段的耗时清单,便于我们发现耗时最多的地方,然后以此为依据查找问题所在,最后优化SQL或者优化mysql参数。比如耗时清单创建了临时表,就要考虑表是否创建索引,如果创建了那么是否没有用到或者失效了。

    总的来说Profiling是一个很不错的mysql性能分析工具。

    相关文章

      网友评论

        本文标题:MYsql监控:全局监控workbench + profilin

        本文链接:https://www.haomeiwen.com/subject/fongbltx.html