我的编程空间,编程开发者的网络收藏夹
学习永远不晚

5.7 ibtmp1问题诊断

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

5.7 ibtmp1问题诊断

环境:

OS:centos6.5      DB: mysql5.7.9(GA版本) 

搜索库实例的数据是从线上环境部分库中通过多源复制拉取而来的数据(线上数据与搜索数据做隔离),主要用来提供搜索的部分功能实现的查询(只有select)

问题:

收到zabbix报警,线上搜索库/data目录free space不足10%,cpu load达到460%,查看zabbix监控,BF刷新也是瞬间飙升

诊断:

1:/data目录前期规划是2T空间,在上一份的统计信息中显示,free space是28%

2:搜索库只拉取部分库的binlog,业务增长率load不到这样的高度

3:cpu负载瞬间飙升,iostat查看IO负载并不高,第一时间想到是慢查询,在processlist和trx表中发现了端倪,大量长时间的状态不对的查询语句

4:慢查询导致load值上升已确定。/data目录为何使用这么快?BF刷新频率为何上升?

解决办法:

1:通知搜索,停止相关查询任务,取出慢查询sql并做优化,语句大致为两个结果集做union,查询频率为1分钟一次,问题在第二个查询语句上,产生了临时表,且索引选择不佳(重建索引)

2:目录增长问题,去/data目录下du查看,增长的文件为ibtmp1,已结增长到了320G左右。查看官方文档ibtmp1,解释如下

MySQL 5.7.2 introduces a new type of undo log for both normal and compressed temporary
tables and related objects. The new type of undo log is not a redo log, as temporary tables are
not recovered during crash recovery and do not require redo logs. Temporary table undo logs are,
however, required for rollback, MVCC, and purging while the server is running. This special type
of non-redo undo log benefits performance by avoiding redo logging I/O for temporary tables and
related objects. The new undo log resides in the temporary tablespace. The default temporary
tablespace file, ibtmp1, is located in the data directory by default and is always recreated on
server startup. A user defined location for the temporary tablespace file can be specified by setting
innodb_temp_data_file_path

注意标红部分:5.7新引入了一个参数innodb_temp_data_file_path 来存放临时表和undo日志的表空间

这条sql频繁的查询导致了大量临时表的产生,BF刷新undo频繁,而ibtmp1就不断增大


想法:

1:sql审核力度。

2: 5.7版本的深入研究


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

5.7 ibtmp1问题诊断

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何快速诊断 PHP 性能问题

快速诊断 php 性能问题的有效技术包括:使用 xdebug 获取性能数据,然后分析 cachegrind 输出。使用 blackfire 查看请求跟踪,生成性能报告。检查数据库查询,识别低效查询。分析内存使用情况,查看内存分配和峰值使用。
如何快速诊断 PHP 性能问题
2024-05-13

微软诊断Office问题的内置小工具

对于很多用户而言,微软Office套装可以说是一款相当重要的软件了。不知经常使用Office的用户有没有遇到过程序崩溃或者其他技术问题,如果遇到了,当时一定很心烦吧?其实,从Office 2007开始,微软就已经在其中内置了Office诊断
2023-05-24

win7系统怎么解决诊断网络提示诊断策略服务未运行问题

这篇文章主要为大家展示了“win7系统怎么解决诊断网络提示诊断策略服务未运行问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win7系统怎么解决诊断网络提示诊断策略服务未运行问题”这篇文章吧。
2023-06-28

如何查看MySQL日志文件以诊断问题

要查看MySQL日志文件以诊断问题,可以按照以下步骤操作:打开MySQL配置文件,通常可以在 /etc/mysql/my.cnf 或 /etc/my.cnf 中找到。查看配置文件中指定了哪些日志文件和级别。登录MySQL数据库,可以使用以下
如何查看MySQL日志文件以诊断问题
2024-04-09

VMware ESX服务器常见问题诊断和解决

以下是VMware ESX服务器常见问题的诊断和解决方法:1. 无法启动虚拟机:检查虚拟机配置文件是否存在问题,例如磁盘空间不足、网络配置错误等,解决方法是修复配置文件或重新创建虚拟机。2. 虚拟机无法连接到网络:检查虚拟网络适配器的设置是
2023-09-22

如何通过spool命令诊断邮件发送问题

spool 命令通常用于在 Unix 和类 Unix 系统(如 Linux)上管理命令行打印服务。然而,它并不直接用于诊断邮件发送问题。邮件发送问题通常与邮件传输代理(MTA)或应用程序中的邮件发送功能有关,而不是与打印服务相关。尽管如此
如何通过spool命令诊断邮件发送问题
2024-10-01

如何诊断和解决 PHP 数据库连接问题?

诊断和解决 php 数据库连接问题确认连接信息(主机名、用户名、密码)正确。使用 mysqli_connect_errno() 和 mysqli_connect_error() 获取错误信息。检查日志文件以获取详细信息。确保防火墙允许连接到
如何诊断和解决 PHP 数据库连接问题?
2024-05-21

编程热搜

目录