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


    服务器性能剖析

    性能优化简介

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

    通过性能剖析进行优化

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

    对应用程序进行性能剖析

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

    剖析MySQL查询

    剖析服务器负载

    慢查询日志

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

    剖析单条查询

    诊断间歇性问题

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

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

    其他剖析工具

    使用USER_STATISTICS表

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

    使用strace

      strace 工具可以调查系统调用的情况。有好几种可以使用的方法,其中一种是计算系统调用的时间并打印出来:
     
  • 相关阅读:
    Java转大数据开发全套视频资料
    Java注解Annotation的用法
    SpringBoot集成CAS单点登录,SSO单点登录,CAS单点登录(视频资料分享篇)
    零基础如何学习Java和web前端
    如何看待B站疑似源码泄漏的问题?
    如何自学编程,零基础适合学习Java或者Web前端吗,非科班的能学java吗?
    Spring中常用的注解,你知道几个呢?
    学习分布式系统需要怎样的知识?
    程序员如何学习互联网前言技术呢,我给你10个建议
    回看面试中的这些坑,你踩过几个?
  • 原文地址:https://www.cnblogs.com/kujiawei/p/13857442.html
Copyright © 2020-2023  润新知