要让事情改变,先改变自己;要让事情变得更好,先让自己变得更强。 ------ joker1034

MYSQL之高性能的mysql(三)--服务器性能剖析

服务器性能剖析

性能优化简介

  数据库服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。
  完成一项任务所需要的时间可以分成两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。

通过性能剖析进行优化

  性能剖析是测量和分析时间花费在哪里的主要方法。性能剖析一般有两个步骤:测量任务所花费的时间;然后对结果进行统计和排序,将重要的任务排到前面。

对应用程序进行性能剖析

  NewRelic会插入到应用程序中进行性能剖析,将收集到的数据发送到一个基于Web的仪表盘,使用仪表盘可以更容易利用面向响应时间的方法分析应用性能。这样用户只需要考虑做那些正确的事情,而不用考虑如何去做。

剖析MySQL查询

剖析服务器负载

慢查询日志

  在MySQL的当前版本中,慢查询日志是开销最低、精度最高的测量查询时间的工具。需要担心的是日志可能消耗大量的磁盘空间。如果长期开启慢查询日志,注意要部署日志轮转(log rotation)工具。或者不要长期启用慢查询日志,只在需要收集负载样本的期间开启即可。从慢查询日志中生成剖析报告需要有一款好工具,建议使用pt-query-digest 。

剖析单条查询

诊断间歇性问题

如何判断单条查询问题还是服务器问题

  使用SHOW GLOBAL STATUS,使用SHOW PROCESSLIST,使用查询日志(推荐使用前两种,开销较小)

其他剖析工具

使用USER_STATISTICS表

  可以查找使用得最多或者使用得最少的表和索引,通过读取次数或者更新次数,或者两者一起排序。
  可以查找出从未使用的索引,可以考虑删除之。
  可以看看复制用户的CONNECTED_TIME 和BUSY_TIME ,以确认复制是否会很难跟上主库的进度。

使用strace

  strace 工具可以调查系统调用的情况。有好几种可以使用的方法,其中一种是计算系统调用的时间并打印出来:

 

 

 
posted @ 2020-10-22 11:57  joker1034  阅读(172)  评论(0编辑  收藏  举报

python开发&研究 - 创建于 2018年10月

这是一位python开发工程师的个人站,内容主要是python开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于python开发&研究工作,专注python开发,关注互联网前沿技术与趋势。


Font Awesome | Respond.js | Bootstrap中文网