【FAQ系列】:DB服务器产生大量物理读问题优化思路
一 【现象】
1、7点到9点IO监控指标util特别高,如下:

2 、查看读写情况:读产生很高的物理IO,如下

【分析】:对比其他服务器,buffer pool都是80G,正常情况下热点数据都是从buffer pool中读取的,产生物理读基本很少,但是这组却产生了很多物理读,肯定是有问题的。
二 【找内鬼】
【基本思路】:既然产生了物理读,下一步我们很容易想到,是哪些表产生了物理io?更具体的就是这些表上哪些SQL会导致物理IO?
1、利用Performance_schema中file_summary_by_instance表统计IO情况。
2、写个脚本,分别统计在7点14到7点20、7点14分到8点14分这两个高峰期间,产生最多物理读的表是哪些。
3、找到表后,查看该表可疑的SQL,重点关注慢查询。
1、 通过统计performance_schema中file_summary_by_instance找到这两个高峰期间产生读物理IO最多的2个表

表已经定位到了,那么再深入一下,找到这些表上哪些SQL可能会导致大量物理读。通过我们开发的sql-trace平台或者通过performance_schema.events_statements_summary_by_digest进行统计。具体语句:
select DIGEST_TEXT,COUNT_STAR,FIRST_SEEN,LAST_SEEN from events_statements_summary_by_digest where DIGEST_TEXT like '%`a1`%';
2、 a1表上可疑的sql语句
SELECT Max(daydate)as daydate FROM a1 WHERE t_id = and bid>;
3、 a2表上可疑的sql语句
SELECT Max(daydate)as daydate FROM a2 WHERE m_id = and bid>;
为什么可疑?
可疑1、从时间段上看,以上sql执行时间和产生物理读比较吻合,都是7点到9点。如下:

可疑2、以上两个SQL都是慢查询。
可疑3、通过set profiling跟踪发现产生很多磁盘io,Block_ops_in=22176,Block_ops_out=664。

三 【验明正身】
找到负责的开发同学,发现是通过job跑的,为了确认是不是该SQL语句导致的问题,让开发同学把job延迟一个小时跑
第二天果然发现磁盘IO的高点也延迟了一个小时,到这里基本可以确定“内鬼”了。
【FAQ系列】:DB服务器产生大量物理读问题优化思路的更多相关文章
- DB服务器中的参数优化
1.swappiness 禁止系统使用swap空间,配置/etc/sysctl.conf中的vm.swappiness=0 2.Scheduler调度 Scheduler调度,指的是磁盘的IO调度算法 ...
- ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析
在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get).当前模式读(DB Block Gets)等诸多概念,如果 ...
- centos5.11架设svn(svn系列 架设服务器 知识一总结)
♣svn是什么? ♣安装 --yum安装 --创建svn版本库目录 --创建版本库 --进入conf目录进行配置(该svn版本库配置文件) --启动svn版本库 - ...
- sqlserver性能调优中的逻辑读,物理读,预读是什么意思
表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...
- 如何减小SQL 的物理读,。
1.dev time:1226 1个跑批 db_file_multiblock_read_count =128 60.05 (mins) 26-Dec-17 16:00:20 ~ 26-Dec-17 ...
- 物理读之LRU(近期最少被使用)的深入解析
转载请注明出处: http://blog.csdn.net/guoyjoe/article/details/38264883 一组LRU链表包含LRU主链.LRU辅助链.LRUW主链,LRUW辅助链, ...
- Tomcat系列之服务器的安装与配置以及各组件详解
Tomcat系列之服务器的安装与配置以及各组件详解 大纲 一.前言 二.安装与配置Tomcat 三.Tomcat 目录的结构 四.Tomcat 配置文件 注,本文的测试的操作系统为CentOS 6.4 ...
- 初谈SQL Server逻辑读、物理读、预读
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...
- 我为什么很烦在DB服务器上安装杀毒软件
常见的数据库连接问题无外乎是在数据库服务器本地可以连接SQL Server,但通过其他服务器就不可以连接.但这次我却碰到了相反的情况,在服务器本地无法通过IP/实例名连接,但从其他服务器却可以.而且每 ...
随机推荐
- 【转】SQL多条件模糊查询解决方案-存储过程
前言: 算法的基本特性在前几篇博客中已经做了详细的说明,经过不断的改进优化,到归仓的时候了,也就是说,该算法告一段落,不再更新. 作为最终的解决方案,简要的总结一下算法特性,以方便读者参阅. l ...
- java--while、do while、for三种循环体
1.for可以记录执行次数: 2.while.do while的i放在sum的后面和for得到的执行次数和结果是一致的. 1.从执行结果来看,放在前面,虽然执行次数和i放在sum的后面是相同,但是结果 ...
- Linux下crontab命令添加Kettle作业定时任务
1. 确保作业 $KETTLE_HOME/kitchen.sh -file=/data1/testdata/testkjb.kjb 或转换 $KETTLE_HOME/pan.sh -file=/dat ...
- 中文里带半角空格导致的Text换行问题[Unity]
0x01 问题 最近策划反映了个问题,游戏里的多行文本会出现提前换行的问题,如下图所示: 文本错误地提前换行,导致第一行文本后面有大块空白区域 通过观察可以发现,当字符串中带有半角空格,且半角空格后面 ...
- Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)
本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习. GameplayAbilities插件 ...
- data-packed volume container - 每天5分钟玩转 Docker 容器技术(43)
在上一节的例子中 volume container 的数据归根到底还是在 host 里,有没有办法将数据完全放到 volume container 中,同时又能与其他容器共享呢? 当然可以,通常我们称 ...
- 记一次sql server 性能调优,查询从20秒至2秒
一.需求 需求很简单,就是需要查询一个报表,只有1个表,数据量大约60万左右,但是中间有些逻辑. 先说明一下服务器配置情况:1核CPU.2GB内存.机械硬盘.Sqlserver 2008 R2.Win ...
- forEach( ) map( ) for( in ) for ( of )
====forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索 ...
- Python爬虫番外篇之Cookie和Session
关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...
- [信息安全] 3.HTTPS工作流程
[信息安全]系列博客:http://www.cnblogs.com/linianhui/category/985957.html 0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对 ...