知识大全 剖析服务器负载(1)[1]

Posted

篇首语:常识很少会把我们引入歧途。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 剖析服务器负载(1)[1]相关的知识,希望对你有一定的参考价值。

高性能MySQL:剖析服务器负载(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   剖析服务器负载( )

  服务器端的剖析很有价值 因为在服务器端可以有效地审计效率低下的查询 定位和优化 坏 查询能够显著地提升应用的性能 也能解决某些特定的难题 还可以降低服务器的整体压力 这样所有的查询都将因为减少了对共享资源的争用而受益( 间接的好处 ) 降低服务器的负载也可以推迟或者避免升级更昂贵硬件的需求 还可以发现和定位糟糕的用户体验 比如某些极端情况

  MySQL 的每一个新版本中都增加了更多的可测量点 如果当前的趋势可靠的话 那么在性能方面比较重要的测量需求很快能够在全球范围内得到支持 但如果只是需要剖析并找出代价高的查询 就不需要如此复杂 有一个工具很早之前就能帮到我们了 这就是慢查询日志

  捕获MySQL 的查询到日志文件中

  在MySQL 中 慢查询日志最初只是捕获比较 慢 的查询 而性能剖析却需要针对所有的查询 而且在MySQL 及之前的版本中 慢查询日志的响应时间的单位是秒 粒度太粗了 幸运的是 这些限制都已经成为历史了 在MySQL 及更新的版本中 慢日志的功能已经被加强 可以通过设置long_query_time 为 来捕获所有的查询 而且查询的响应时间单位已经可以做到微秒级 如果使用的是Percona Server 那么 版本就具备了这些特性 而且Percona Server 提供了对日志内容和查询捕获的更多控制能力

  在MySQL 的当前版本中 慢查询日志是开销最低 精度最高的测量查询时间的工具 如果还在担心开启慢查询日志会带来额外的I/O 开销 那大可以放心 我们在I/O 密集型场景做过基准测试 慢查询日志带来的开销可以忽略不计(实际上在CPU 密集型场景的影响还稍微大一些) 更需要担心的是日志可能消耗大量的磁盘空间 如果长期开启慢查询日志 注意要部署日志轮转(log rotation)工具 或者不要长期启用慢查询日志 只在需要收集负载样本的期间开启即可

  MySQL 还有另外一种查询日志 被称之为 通用日志 但很少用于分析和剖析服务器性能 通用日志在查询请求到服务器时进行记录 所以不包含响应时间和执行计划等重要信息 MySQL 之后支持将日志记录到数据库的表中 但多数情况下这样做没什么必要 这不但对性能有较大影响 而且MySQL 在将慢查询记录到文件中时已经支持微秒级别的信息 然而将慢查询记录到表中会导致时间粒度退化为只能到秒级 而秒级别的慢查询日志没有太大的意义

  Percona Server 的慢查询日志比MySQL 官方版本记录了更多细节且有价值的信息 如查询执行计划 锁 I/O 活动等 这些特性都是随着处理各种不同的优化场景的需求而慢慢加进来的 另外在可管理性上也进行了增强 比如全局修改针对每个连接的long_query_time 的阈值 这样当应用使用连接池或者持久连接的时候 可以不用重置会话级别的变量而启动或者停止连接的查询日志 总的来说 慢查询日志是一种轻量而且功能全面的性能剖析工具 是优化服务器查询的利器

  有时因为某些原因如权限不足等 无法在服务器上记录查询 这样的限制我们也常常碰到 所以我们开发了两种替代的技术 都集成到了Percona Toolkit 中的pt query digest 中 第一种是通过 processlist 选项不断查看SHOW FULL PROCESSLIST 的输出 记录查询第一次出现的时间和消失的时间 某些情况下这样的精度也足够发现问题 但却无法捕获所有的查询 一些执行较快的查询可能在两次执行的间隙就执行完成了 从而无法捕获到

  第二种技术是通过抓取TCP 网络包 然后根据MySQL 的客户端/ 服务端通信协议进行解析 可以先通过tcpdump 将网络包数据保存到磁盘 然后使用pt query digest 的 type=tcpdump 选项来解析并分析查询 此方法的精度比较高 并且可以捕获所有查询 还可以解析更高级的协议特性 比如可以解析二进制协议 从而创建并执行服务端预解析的语句(prepared statement)及压缩协议 另外还有一种方法 就是通过MySQLProxy 代理层的脚本来记录所有查询 但在实践中我们很少这样做

cha138/Article/program/MySQL/201311/29714

相关参考

知识大全 剖析服务器负载(1)[2]

高性能MySQL:剖析服务器负载(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  分析

知识大全 剖析服务器负载(2)[2]

高性能MySQL:剖析服务器负载(2)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  #m

知识大全 使用SQL服务器内置的错误寻找器寻找和剖析错误

使用SQL服务器内置的错误寻找器寻找和剖析错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大

知识大全 PHP程序加速探索之服务器负载测试

PHP程序加速探索之服务器负载测试  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  服务器负载太大

知识大全 PHP监控linux服务器负载

PHP监控linux服务器负载  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于WebServ

知识大全 Tomcat集群与负载均衡

Tomcat集群与负载均衡  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在单一的服务器上执行W

知识大全 剖析单条查询(1)[1]

高性能MySQL:剖析单条查询(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(2)[1]

高性能MySQL:剖析单条查询(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(3)[1]

高性能MySQL:剖析单条查询(3)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(1)[2]

高性能MySQL:剖析单条查询(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  |ch