数据库服务器性能剖析(思路梳理)

最常见的三个性能相关问题;

  1. 如何确认服务器是否达到了性能最佳的状态。
  2. 某条语句为什么执行的不够快。
  3. 如何诊断被用户描述成停顿、堆积、或者卡死的某些间歇性疑难故障。

性能常见指标

  • 每秒查询次数。
  • CPU利用率。
  • 可扩展性。

性能定义;完成某件任务所需要的时间度量,或者说,性能即响应时间。

性能的优化; 在一定的工作负载下尽可能的降低响应时间。

注意;CPU利用率并不是很好的度量性能的指标。单纯的降低CPU利用率会导致资源的减少使用,资源是用来消耗并工作的,有时候消耗更多资源能够带来更快的查询速度。

同样,如果把优化只是当做提升每秒查询量,也只是吞吐量的优化。只能当做是优化的副产品。

对查询的优化可以让服务器每秒执行更多的查询,因为每条查询语句的时间更短了。

优化的目的是降低响应时间,那么首先要明白为什么服务器查询需要那么多的时间,然后减少或者消除那些对查询结果没有必要的工作。(无法测量就无法优化)

很多人优化花很多时间去修改一些东西,而不去关注精确的测量。对症下药才能更好地解决。

扫描二维码关注公众号,回复: 4446816 查看本文章

测量是一项很有挑战的工作,分析结果同样有挑战性。测出时间花在哪里,知道为什么花在哪里。

要有合适的测量范围,两种情况会导致不合适的测量;

  1. 在错误的时间启动和停止测量。
  2. 测量的是聚合后的信息,而不是目标活动本身。

完成一项任务的时间分为两部分;执行时间,等待时间。

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

优化等待时间要复杂的多,牵扯到可能由于其他系统间接影响导致。任务间也可能由于争夺磁盘或者CPU资源相互影响。

定位和优化子任务----性能剖析;

性能剖析是测量与分析时间花费在哪里的主要方法;分两步

测量任务花费的时间

对结果进行统计排序,重要的任务排在前面。

性能花费的时间主要通过获取事务启动时开启到事务结束时间差 (时钟)。

猜你喜欢

转载自blog.csdn.net/Scrat_Kong/article/details/82862034
今日推荐