目前正在使用spark进行大数据的算法测试,数据库使用tidb v6.1版本
使用表A进行算法测试,算法测试在第一次执行时,缓存内无缓存数据,因此执行时长较长
对表A进行数据的追加,扩大测试数据量级,但是因为tikv中存在表A的缓存数据,第二次的测试就不能很好的反应测试实际耗时,除了重启tikv服务,能不能手动释放一下tikv的缓存?
不支持
好像不支持
3 个赞
那我直接清除linux系统的所有缓存有效么?
好像没有看到相关说明,应该是不支持的
测试环境可以尝试,生产环境不建议直接强制释放内存。
不支持
这个设置是在tikv的配置文件里写,还是在数据库里配置参数?
这个应该是不支持的
不知道spark有没有这样的算子
在执行的sql里面
如果你用的TiSpark,提几点小小的建议:
1.TiSpark读取数据是直接读取的TiKV,我印象中block缓存是TiDB Server中的。
2.你用mysql client下的explain可能并不代表Spark中的实际执行过程,建议可以在Spark中Explain一下。
3.看你应用Spark的场景,可能会有shuffler缓存,这一块也许会影响你的算法计算,建议考虑一下。
1 个赞
将block cache调小是否也能达到目的呢
sql_no_cache意思是不做缓存,但不会清除缓存,从第一次执行加上到后面每次就会都不走缓存了
blockcache是tikv的,准确来说是rocksdb的
嗯,但是spark sql不支持这样的写法,jdbc是可以的