`
annan211
  • 浏览: 462687 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

高性能mysql 之 性能剖析

阅读更多
1 定义性能优化
  mysql服务器性能,此处定义为 响应时间。
  在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
  这是一个陷阱。
  资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
  编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不代表性能出现了问题。反而说新版本的InnoDB对cpu的利用率上升了。
  查询的响应时间更能体现性能是不是有所提升。cpu利用上升,之势一种现象,而不是很好的性能指标。
  
  还有一种理解,即性能优化仅仅是提升每秒查询量。这种误解,把吞吐量理解为性能优化,这恰恰是性能优化的倒数。
  吞吐量可以看做 性能优化的副产品,因为每条查询执行的时间被缩短了,所以单位时间内可以执行更多的查询,而这刚好是
  吞吐量的定义。
  
2 测量时间都花在哪了
  优化性能,即缩短查询时间,首先必须知道时间都花在哪了。
  
3 优化方法怎么样
  优化,很多人都会想到必须需要大量修改配置和sql或者策略。我们这里的方法完全相反,会把90%的精力放在测量时间花在哪里。
  如果通过测量没有找到答案,一般都是测量的方法出现了问题。
  
4 对性能进行剖析
  对性能进行剖析的步骤一般是 1 测量任务所花费的时间 2 对结果进行统计和排序将重要的排在前面。
  第一部分 剖析服务器负载
  
  1 学会使用工具new relic 这个软件。
  2 或者使用企业监控器 enterprise monitor,她可以捕获发送给服务器的查询。
  3 mysql 高级版本中 已经将慢查询日志的精度从秒提升到微妙级别,I/O开销也可以忽略不计,所以可以开启慢查询日志。
    慢查询日志分析工具 pt-query-digest
	
  第二部分 剖析单条查询
    1 查看profile mysql>show profiles;
	2 设置profiling mysql>set profiling=1;
	3 查看profiles mysql> show profiles;
	4 查看单条sql 执行过程 mysql> show profile for query 2;
	
  第三部分 使用show global status
    这个方法实际上就是以较高的频率捕获数据,问题出现时,则可以通过某些计数器的尖刺或者凸现
	来发现。这个方法比较简单,对服务器影响也比较小,所以是一个花费时间不多却能很好解决问题的方法,命令如下
	shell> mysqladmin -uroot -r -i 1 -proot extended-status | awk '/Queries/{q=$4-qp;qp=$4} /Threads_connected/{tc=$4} /Threads_running/{printf "%5d %5d %5d\n",q,tc,$4}' 
	这段shell 会每秒捕捉一次mysql数据库线程连接 ,打印数据库 每秒查询数、线程连接数、正在执行的线程数。
	这三个数据对于服务器级别偶尔停顿的敏感性很高,
	
	正常情况下 数据是稳定的,偶尔出现的尖刺必须引起足够的重视,根据实践,两方面的原因的可能性比较大
	一是服务器内部遇到了某种瓶颈,导致新查询在开始执行前需要获取老查询正在等待的锁而造成堆积,第二种原因是
	服务器可能突然遭到了大范围的查询请求,比如前端缓存失效。
	
	以上的这条命令可以执行几小时或者几天,然后绘制成图表,分析尖刺的原因。
	

5 学会使用工具
  1 pt-mysql-summary:本地安装、然后远程收集MySQL Server的基本信息
  2 分析processlist结果
    shell> grep State:processlist.txt |sort |uniq -c| sort -rn
  3 在linux 服务器安装iostat 观察服务器I/O 队列详情。
  4 参照 profile 提供的报表
  5 如果怀疑mysql短时间写入大量文件到临时表或者排序文件 ,则需要使用命令lsof 观察服务器打开的文件句柄。
  6 new relic 可以很好地解决这类问题
	
	
6 性能剖析这一章节总结如下
  1 我们认为定义性能最有效的方法是响应时间。
  2 如果无法测量,就无法有效的优化,所以性能优化工作需要基于高质量、全方位及完整的响应时间测量。
  3 大多数系统无法完整的测量,测量有时候也会有错误的结果。但也可以想办法绕过一些限制,并取得好结果。
  4 完整的测量会产生大量需要分析的数据,所以需要用到剖析工具。
  5 剖析汇报是一种汇总信息,掩盖和丢弃了太多细节,他不会告诉你缺少了什么,所以完全依赖剖析报告也是不明智的。
  6 有两种消耗时间的操作:工作或者等待。大多数剖析工具只能测量因为工作而消耗的时间,所以等待分析有时候是很有用的补充,
    尤其是当cpu利用率很低但工作却一直无法完成的时候。
  7 优化和提升是两回事,当继续提升的成本超过收益的时候,应当停止优化。
  8 注意你的直觉。决策应当尽量基于数据而不是感觉。	

   请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1

 

 

 

 

分享到:
评论

相关推荐

    高性能MySQL.pdf

    《高性能MySQL》是一本深入探讨MySQL数据库系统优化与管理的经典著作。这本书涵盖了MySQL的架构、历史、性能调优以及基准测试等多个重要主题,对于数据库管理员、开发人员以及对数据库性能有高要求的技术人员来说,...

    《高性能MySQL》(第3版)高清中文带目录版.pdf

    《高性能MySQL(第3版)》是MySQL 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新MySQL 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有...

    高性能mysql PDF 中英文合集

    《高性能MySQL》是数据库管理员、开发人员和系统架构师必备的一本经典著作,特别是对于处理大规模数据和高并发场景的企业来说,这本书提供了丰富的知识和实践经验。该书的第三版不仅涵盖了MySQL的基础操作,还深入...

    高性能MySQL pdf 免费-part1

    《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。  《高性能MYSQL》...

    高性能mysql 第四版 英文版 PDF下载 [high performance mysql 4th edition PDF]

    《高性能MySQL第四版》是MySQL领域的一本经典著作,由Silvia Botros和Jeremy Tinley共同撰写,并由Jeremy Cole作序。这本书自初次发行以来,已经伴随MySQL社区走过了17年,见证了MySQL的不断进化和发展。随着技术的...

    高性能mysql源码.rar

    "高性能MySQL源码"指的是MySQL数据库系统的内部实现细节,通过分析源码,我们可以深入理解其工作原理,优化数据库操作,提升系统性能。源码分析通常涉及以下几个关键知识点: 1. **存储引擎**:MySQL支持多种存储...

    高性能MySQL

    《高性能MySQL》第二版是MySQL技术领域的经典之作,它将帮助读者深入理解MySQL的工作原理,提升数据库管理与优化技能,从而实现数据库系统的高性能运行。通过阅读此书,你将能够掌握解决数据库性能问题的策略和方法...

    高性能MySQL_第3版_超清中文带目录版[PDF]

    高性能MySQL_第3版_超清中文带目录版[PDF] 序 I 前言 III 第1章:MySQL架构 1 第2章:寻找瓶颈:基准测试(Benchmarking)与性能分析(Profiling) 32 第3章:架构优化和索引 80 第4章:查询性能优化 152 第5章:...

    高性能mysql-中文

    《高性能MySQL》是MySQL 领域的经典之作,拥有广泛的影响力。第3版更新了大量的内容,不但涵盖了最新MySQL5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试...

    高性能MySQL(第3版,包含azw3,epub,mobi格式)

    《高性能MySQL》是数据库领域的经典著作,第3版更是涵盖了MySQL的最新技术和最佳实践。这本书主要探讨了如何在实际应用中优化MySQL的性能,确保数据的高效存储和检索,为企业的业务提供稳定、快速的数据服务。 1. *...

    高性能Mysql mysql书籍

    《高性能MySQL》是一本经典的数据库技术专著,深入探讨了MySQL的高性能优化、备份、恢复、复制和安全性等方面,对于数据库管理员、开发人员以及对MySQL性能有高要求的技术人员来说,是一本不可或缺的参考书。...

    《高性能MySQL(第3版)》书中示例代码

    《高性能MySQL(第3版)》是一本深受数据库管理员、开发者和系统架构师喜爱的经典书籍,专注于MySQL的性能优化和高效使用。这本书深入探讨了如何在实际应用中最大化利用MySQL的潜能,涵盖了许多关键主题,包括查询...

    高性能MySQL(第3版).part2

    3.1.1通过性能剖析进行优化69 3.1.2理解性能剖析71 3.2对应用程序进行性能剖析72 3.2.1测量PHP应用程序74 3.3剖析MySQL查询77 3.3.1剖析服务器负载77 3.3.2剖析单条查询81 3.3.3使用性能剖析87 3.4诊断间歇...

    高性能MySQL(第3版).Baron.Scbwartz_2

    第1章 mysql 架构与历史 1 第2章 mysql 基准测试 35 第3章 服务器性能剖析 67 第4章 schema 与数据类型优化 111 第5章 创建高性能的索引 141 第6章 查询性能优化 195 第7章 mysql 高级特性 259 第8章 优化服务器设置...

    高性能的MySQL中文版

    11. **最新版本特性**:《高性能MySQL》第三版可能会涵盖MySQL的新特性,如InnoDB Cluster、JSON支持、窗口函数等,帮助读者掌握最新技术动态。 总的来说,这本书是提升MySQL性能的宝典,无论你是初学者还是经验...

    高性能MySQL(第3版) 中文PDF带目录清晰版PDF

    《高性能MySQL(第3版)》是MySQL 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新MySQL 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有...

    高性能MySQL中文版

    《高性能MySQL》是一本深入探讨MySQL数据库性能优化的权威指南,尤其适合于已经对MySQL有一定了解,希望进一步提升系统性能的DBA和开发者。这本书详细阐述了如何在实际环境中实现MySQL的高效运行,覆盖了从基础概念...

Global site tag (gtag.js) - Google Analytics