5.7 ibtmp1问题诊断
admin
2023-05-28 22:41:38
0次

环境:

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版本的深入研究


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...