博客
关于我
高性能MySQL——第三章服务器性能剖析
阅读量:528 次
发布时间:2019-03-09

本文共 846 字,大约阅读时间需要 2 分钟。

常见的三个性能相关的服务请求

  • 如何确认服务器是否达到了性能最佳的状态
  • 找出某条语句为什么执行不够快
  • 诊断被用户描述成“停顿”、“堆积”或者“卡死”的某些间歇性疑难故障
  • 事实证明,可以通过一种简单的方法来发现一些苗头:

    专注于测量服务器的时间花费在哪,使用的技术是性能剖析。

    性能优化简介

    这里将性能定义为:完成某件任务所需的时间度量,即响应时间。性能优化假设就是在一定的工作负载下尽可能降低响应时间。

    如果目标是降低响应时间,那么就需要理解为什么服务器执行查询需要这么多时间,然后去减少或者消除那些对获得查询结果来说不必要的工作。所以无法测量就无法有效地优化。

    完成一项任务所需要的时间分为:

    • 执行时间

      优化执行时间,最好是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。

    • 等待时间

      优化等待时间相对复杂。

    如何确定哪些子任务需要优化,就通过性能剖析。

    性能剖析

    性能剖析是测量和分析时间花费在哪主要方法。

    一般有两个步骤:

    • 测量任务所花费的时间;
    • 然后对结果进行统计和排序,将重要的任务排到前面。

    主要有两种类型的性能剖析:

    • 基于执行时间的分析

      研究的是什么任务执行时间最长
    • 基于等待的分析

      判断任务在什么地方被阻塞的时间最长

    当基于执行时间的分析发现一个任务需要花费太多时间的时候,应该深入去分析一下,可能会发现某些“执行时间”实际上是在等待。

    理解性能剖析

    MySQL性能剖析会将最重要的任务展示在前面,但有时没有显示的信息也很重要,如

    • 值得优化的查询

      一些只占总响应时间比重很小的查询是不值得优化的。如果优化的成本大于收益,就应当停止优化。
    • 异常情况

      比如某些任务执行次数很少,但每次执行都非常慢,这样总响应时间占比很小。
    • 未知的未知

      存在“丢失的时间”
    • 被掩藏的细节

      性能剖析无法显示所有响应时间的分布。

    剖析MySQL查询

    可以剖析整个数据库服务器,定位到具体需要优化的查询后,可以钻取下去对这些查询单独剖析。

    剖析服务器负载

    转载地址:http://sfeiz.baihongyu.com/

    你可能感兴趣的文章
    Python数据分析(二): Numpy技巧 (2/4)
    查看>>
    09 . Python3之常用模块
    查看>>
    Python学习笔记-StatsModels 统计回归(3)模型数据的准备
    查看>>
    Velocity.js初步
    查看>>
    yarn出现“There are no scenarios ; must have at least one"
    查看>>
    nginx上配置phpmyadmin
    查看>>
    HustOJ二次开发之修改数据库连接池
    查看>>
    redis集群报错:(error) CLUSTERDOWN Hash slot not served
    查看>>
    一个JAVA应用启动缓慢问题排查 --来自jdk securerandom 的问候
    查看>>
    spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
    查看>>
    httprunner学习23-加解密
    查看>>
    有道云笔记 同步到我的博客园
    查看>>
    阿里云“网红"运维工程师白金:做一个平凡的圆梦人
    查看>>
    李笑来必读书籍整理
    查看>>
    vue书籍整理
    查看>>
    记Java中有关内存的简单认识
    查看>>
    http头部 Expect
    查看>>
    Hadoop(十六)之使用Combiner优化MapReduce
    查看>>
    《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
    查看>>
    CoreCLR源码探索(八) JIT的工作原理(详解篇)
    查看>>