过高的exec_mem_limit设置可能导致多个同时运行的查询之间发生内存竞争,影响整体系统性能。 如何设置 全局设置 可以通过修改 Doris 配置文件(如fe.conf或be.conf)中的相关参数来全局设置exec_mem_limit。不过,更常见的做法是在会话级别动态调整这一参数。 会话级别设置 在发起查询之前,可以通过 SQL 语句在当前会话中设...
尽管exec_mem_limit是 BE 节点的参数,但可以通过以下几种方式来设置: 会话级别设置:通过 SQL 命令在当前会话中设置该参数。 SET exec_mem_limit = 4096000000; -- 设置为大约4GB 1. 这种方式允许你在不重启服务的情况下动态调整内存限制,适用于临时需要增加或减少内存使用的场景。 BE 配置文件:修改 BE 节点的...
Doris BE 会定时从系统获取进程的物理内存和系统当前剩余可用内存,并收集所有查询、导入、Compaction 任务 MemTracker 的快照,当 BE 进程内存超限或系统剩余可用内存不足时,Doris 将释放 Cache 和终止部分查询或导入来释放内存,这个过程由一个单独的 GC 线程定时执行。若 Doris BE 进程内存超过 SoftMemLimit(默认...
若BE 进程内存超过 MemLimit(默认系统总内存的 90%)或系统剩余可用内存低于 Low 水位线(通常不大于1.6GB)时触发 Full GC,此时除上述操作外,导入在强制下刷缓存数据时也将暂停,并释放全部 Data Page Cache 和大部分其他 Cache,如果释放的内存不足 20%,将开始按一定策略在所有查询和导入的 MemTracker 列表中查找...
若Doris BE 进程内存超过 SoftMemLimit(默认系统总内存的 81%)或系统剩余可用内存低于 Warning 水位线(通常不大于 3.2GB)时触发 Minor GC,此时查询会在 Allocator 分配内存时暂停,同时导入强制下刷缓存中的数据,并释放部分 Data Page Cache 以及过期的 Segment Cache 等,若释放的内存不足进程内存的 10%,若启用了...
dorisBE停止: ./start_be.sh --daemon /start_fe.sh --daemon 1 2 3 查看Be状态 SHOW PROC '/backends'; 1 doris Broker启动与停止 ./start_broker.sh --daemon ./stop_broker.sh --daemon 1 2 3 查看Broker状态: SHOW PROC "/brokers"; ...
开启行存缓存可以在 BE 中设置以下配置项来开启:disable_storage_row_cache=false//是否开启行缓存,默认不开启 row_cache_mem_limit=20%//指定rowcache占用内存的百分比,默认20%内存 相关PR:github.com/apache/doris # Benchmark 基于以上一系列优化,帮助 Apache Doris 在 Data Serving 场景的性能得到进一步提升。
通过Doris 调用 Hive Catalog 进行聚合查询,在设置 set exec_mem_limit=16G 情况下用时 58.531 秒,查询耗时较之前减少了近 2/3; 在同等条件下,在 Doris 中执行相同的的操作可以在 0.828 秒就能返回查询结果,性能增幅巨大。 具体效果如下: (1)Hive 查询语句,用时 162 秒。 select count(*),product_no FR...
incubator-doris [Bug] 当并行执行sql语句BE占用内存达到mem_limit上限值时,BE进程异常退出We had the ...
-- 设置会话变量 exec_mem_limit。则之后该会话内(连接内)的所有查询都使用这个内存限制。set exec_mem_limit=1G;-- 设置全局变量 exec_mem_limit。则之后所有新会话(新连接)的所有查询都使用这个内存限制。set global exec_mem_limit=1G;-- 在 SQL 中设置变量 exec_mem_limit。则该变量仅影响这个 SQL。sel...