故障分析 | DROP 大表造成数据库假死
客户数据库出现假死,导致探测语句下发不下去,出现切换。后来经过排查发现是一个大表drop导致的数据库产生假死,也参考过类似的数据库假死的案例,这里将测试一下不同版本droptable的影响
关于drop大表的历史bug描述根据,对于大的bufferpool中的大表drop会占用mutex锁,导致其它查询无法进行。提供的临时解决方案为释放AHI(自适应哈希),预期解决版本是8.0.23。暂未从5.7的后期版本中找到解决方式
使用不同版本测试影响效果
准备流程测试配置
bufferpool表空间占用5.7.29128
关闭binlog、调整双一,使用benchmark导入300个库的数据
ls-lhbmsql_*.ibd-rw-r-----1rootroot96KOct1917:49bmsql_:05bmsql_:46bmsql_:28bmsql_:34bmsql_:32bmsql_new_:48bmsql_:44bmsql_order_:43bmsql_:57bmsql_[localhost:5729]{root}(test)FLUSHTABLESbmsql_customerFOREXPORT;QueryOK,0rowsaffected(0.01sec)[root@R820-04test]cpbmsql_order_line.{ibd,cfg}/data/sandboxes/mysql[localhost:5729]{root}(test)UNLOCKTABLES;QueryOK,0rowsaffected(0.00sec)mysql[localhost:5729]{root}(test)FLUSHTABLESbmsql_stockFOREXPORT;QueryOK,0rowsaffected(0.00sec)[root@R820-04test]ls-lhbmsql_*-:06bmsql_:06bmsql_:12bmsql_order_:12bmsql_order_:14bmsql_:14bmsql_改回binlog及双一参数。调整bufferpool到128G
mysql[localhost:5729]{root}((none))setglobalinnodb_buffer_pool_size=128*1024*1024*1024QueryOK,0rowsaffected(0.00sec)mysql[localhost:5729]{root}((none))showvariableslike'innodb_buffer_pool_size';+-------------------------+-------------+|Variable_name|Value|+-------------------------+-------------+|innodb_buffer_pool_size||+-------------------------+-------------+1rowinset(0.00sec)数据库预热
mysql[localhost:5729]{root}(test)showvariableslike'%hash%';+----------------------------------+-------+|Variable_name|Value|+----------------------------------+-------+|innodb_adaptive_hash_index|ON||innodb_adaptive_hash_index_parts|8||metadata_locks_hash_instances|8|+----------------------------------+-------+/opt/sysbench-x86_64//bin/sysbencholtp_read_=10.186.17.104--mysql-port=5729--mysql-user=test--mysql-password=123456--mysql-db=test--table-size=10000000--tables=5--threads=5--db-ps-mode=disable--auto_inc=off--report-interval=3--max-requests=0--time=300--percentile=95--skip_trx=on--mysql-ignore-errors=6002,6004,4012,2013,4016,1062,1213--create_secondary=()Runningthetestwithfollowingoptions:Numberofthreads:5Reportintermediateresultsevery3second(s)InitializingrandomnumbergeneratorfromcurrenttimeInitializingworkerthreadsThreadsstarted![179s]thds:5tps:17.00qps:330.01(r/w/o:257.01/73.00/0.00)lat(ms,95%):350.33err/s:0.00reconn/s:0.00[180s]thds:5tps:5.00qps:78.99(r/w/o:63.99/15.00/0.00)lat(ms,95%):272.27err/s:0.00reconn/s:0.00[181s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[182s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[183s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[184s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[185s]thds:5tps:3.00qps:68.96(r/w/o:56.97/11.99/0.00)lat(ms,95%):5312.73err/s:0.00reconn/s:0.00[186s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[187s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[188s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[189s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[190s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[191s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[192s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[193s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[194s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[195s]thds:5tps:0.00qps:0.00(r/w/o:0.00/0.00/0.00)lat(ms,95%):0.00err/s:0.00reconn/s:0.00[196s]thds:5tps:10.00qps:139.00(r/w/o:99.00/40.00/0.00)lat(ms,95%):16519.10err/s:0.00reconn/s:0.00[197s]thds:5tps:19.00qps:362.00(r/w/o:286.00/76.00/0.00)lat(ms,95%):303.33err/s:0.00reconn/s:0.00[198s]thds:5tps:21.00qps:358.00(r/w/o:274.00/84.00/0.00)lat(ms,95%):442.73err/s:0.00reconn/s:0.00[199s]thds:5tps:22.00qps:395.97(r/w/o:307.97/87.99/0.00)lat(ms,95%):308.84err/s:0.00reconn/s:0.00[200s]thds:5tps:16.00qps:303.02(r/w/o:237.02/66.00/0.00)lat(ms,95%):502.20err/s:0.00reconn/s:0.00[201s]thds:5tps:21.00qps:379.03(r/w/o:297.02/82.01/0.00)lat(ms,95%):325.98err/s:0.00reconn/s:0.00关闭AHI,时间缩短至2s,TPS/QPS过程中降为0

超过32gbufferpool中drop大表、dropAHI中占用大量页面的表、drop临时表空间,
之前版本会立即的释放脏页和AHI,这样会对性能产生很大的问题。如今的修复方式采用惰性删除的方式,对业务影响比较小
结论:droptable过程大概分为三部分:
1、遍历lru,驱逐属于该表的脏页
2、清理AHI中的内容
3、文件系统的删除
其中前两部分属于最耗时,也是最影响业务的。大的bufferpool会导致遍历时间过长,通过hash运算找到AHI对应的位置并删除,这个时间也是比较长的,此阶段持有内部latche不释放,影响其它查询
8.0.23的修复版本主要是对应第一部分,对于脏页采用惰性删除方式,在关闭AHI的时候,是瞬间完成。当开启AHI的是,时间比历史版本的还要长,区别是不影响业务,猜测是降低锁的持有时间和粒度,使其它事务能够同时执行
推荐阅读
-
玫瑰花枝用水怎么养,水养玫瑰花生根的方法
水养玫瑰花生根应该留意频频替换水,运用生根剂,适宜的温度和光照条件。水养玫瑰花生根...
-
官宣!洮南四海湖“冰汤圆”获基尼斯认证
活动现场气氛十分热烈,省内文学艺术创作及摄影领域的资深人士,省内外知名媒体代表以及...
-
北京平谷:本周日自行车赛事期间,这些道路临时交通管制
具体比赛路线为:由石林峡景区出发,经胡关路、胡黑路北延、黑黄路、黄松峪水库西路、到...
-
去了桂林阳朔3次,有些话不得不说!
而且,建议选择住在远离西街的民宿或者客栈,这样可以更加安静地享受阳朔的宁静与美好。...
-
1973年,建到14层的北京饭店危及中南海,幸好汪东兴及时发现不
这个方案既不影响北京饭店的整体规划,又能有效保护中南海的安全。结语:安全与发展的平...
-
滑轨抽屉怎么把抽屉取出来?了解这一些,轻松搞定拆卸的问题!
操作过程为:首先把抽屉柜向外拉,拉到最大规模就可以看到抽屉柜两边滑轨上有卡扣的(黑色...
-
我市于红玲入选“中国好人榜”4月份候选人
热心为下岗职工服务人人称赞的业委会主任为满足居民日益增长的精神文化需求,于红玲组织...
-
浪琴表全新康卡斯系列V.H.P.计时腕表品鉴
腕表全体实拍表盘细节实拍该系列装备直径42mm或44mm两种表壳尺度挑选,腕表指示时、分、秒,...
-
百家姓氏-湖南地区任姓来源
湘阴毛塘任氏始迁祖夔公,后唐同光2年(924)自江西南昌县铁树观迁居湘阴县一都石壁毛塘,...
-
返回时间又缩短了!神十四飞船9小时着陆,比神十二缩短近20小时
无论是上天仍是回来,缩短时刻的办法首要便是尽量多地削减飞船对接空间站之前或脱离空间...