服务器性能剖析——高性能MySQL笔记

【前言】阅读高性能mysql第三章,学习到了从数据库的角度来分析服务器的性能评价,总结一下。三个常见的服务器性能问题:

  (1)如何确定服务器性能达到了最佳的状态?

  (2)找出某条语句问什么执行的不够快的原因?

  (3)诊断造成客户端“卡顿”、“堆积”的某些间歇性疑难故障。

   解决什么三个问题,看似困难。有简单方法就是专注于分析服务器的时间花费在了那里?使用的技术就是性能剖析。将展示如何测量系统并生成剖析报告,以及如何分析系统整个堆栈,包括从应用程序到数据库服务器到单个查询。

一、性能优化简介

  性能定义有很多角度,我们定义一个:为完成某件任务所需的时间度量,即发送给服务器一条指令,其响应时间。由此引出第二个原则:无法测量就无法有效的优化。

    性能剖析有两个步骤:测量任务所花费的时间;然后进行结果统计和排序,将重要的任务排到前面。分析的时候去辨别是执行耗时还是等待耗时,两个可以都测一下,现在数据库都提供了测量点来支持数据库的可测量性能。但是测量当然会花费时间消耗,但是一般情况下因为测量点的存在会给数据库带来10%甚至更多的提升。所以在交易系统中加入测量点或者预警机制,还是有用的。

  二、对应用程序性能剖析

  对应用程序的剖析最好还是自上而下的进行,比如调用了外部的搜索引擎,需要读取一个大的xml文件,在循环中执行大量的正则表达式,使用了抵消的算法。虽然,性能问题大多数都是数据据库有关。所以可以在应用代码中加入性能剖析代码,一般都有成套的测试代码工具接口,new relic。是会占一些消耗,可以在集群中一台服务器运行,或者部分代码片段运行。

三、剖析mysql的查询(一次操作的响应时间)

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

  一般两种方式,第一种:剖析服务器负载

   1、慢查询日志,即捕获的比较慢的查询的日志。现在可以捕获所有查询了。其记录了每一个查询的操作(这里查询就是指一次请求的响应时间)

    2、tcpdump抓包

四、都是实战的内容,就不翻译了,需要亲自去实战!

  总的来说,若想提高优化服务器性能,就是先生成一个“操作报告”(查询报告到日志中,利用pt-query-digest工具生成系统级别的剖析报告。分析性能低下的操作,找到坏的操作时,进一步使用例如show profile以及其他诸如explain这样的工具。

猜你喜欢

转载自www.cnblogs.com/huangfuyuan/p/9426902.html