tpch 1T,稳定出现 Secondary engine operation failed 报错;
现象:数据已经都导入,并且load到 rapid引擎当中。
参数:
rapid_worker_threads = 16
set global rapid_hash_table_memory_limit = 80;
set global rapid_memory_limit = 190737418240
+ 出现如下异常现象:
运行脚本,某一条开始失败,失败之后尝试走rapid引擎查询会报错:
ERROR 3889 (HY000): Secondary engine operation failed. use_secondary_engine is FORCED but query could not be executed in secondary engine.
如果对所有的表都 load一次,之后可以继续查询,即便实际上load报错失败(毕竟此前已经把数据导入到AP引擎当中了)。
+ 已发现在如下两个条件下可以稳定触发异常现象:
run-tpch.sh 脚本,
1,如果将22条语句循环次数改为2, 会在21条跑到第二次开始报错:
报错信息为:
ERROR 2013 (HY000) at line 2: Lost connection to MySQL server during query
ERROR 2003 (HY000): Can't connect to MySQL server on '10.229.31.45' (111)
此后尝试利用ap引擎查询,会出现异常现象。
2, 将22条语句的循环次数改为1,会在22条运行时报错。
ERROR 2003 (HY000): Can't connect to MySQL server on '10.229.31.45' (111)
top观察发现内存占用内存不断上升,直到进程消失,然后再自动拉起,消失同时脚本报错。
+ 解决方案:
set global rapid_hash_table_memory_limit = 60;
set global rapid_memory_limit = 150737418240;
都可以。
rapid_hash_table_memory_limit这个值设置太高了,很容易发生OOM。
一般在较为复杂的(多层JOIN、子查询)的场景下,最高不超过30。
详见参考:https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-1-highperf-rapid-engine.html#_5-4-%E9%83%A8%E5%88%86%E5%86%85%E5%AD%98%E5%8F%82%E6%95%B0%E7%9A%84%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E 另外,一般建议设置 SET use_secondary_engine = ON 就好,不要设置为 FORCED,否则总是强制使用secondary engine,但如果无法使用时,则会报错。
详见文档:https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-1-highperf-rapid-engine.html#_2-4-%E5%88%A9%E7%94%A8rapid%E5%BC%95%E6%93%8E%E6%8F%90%E5%8D%87%E6%9F%A5%E8%AF%A2%E6%95%88%E7%8E%87
页:
[1]