我在历史节点上存储了大约10GB的数据。但是,该节点的内存消耗约为2GB。
当我启动一个选择查询时,结果将在超过30个secondes中第一次返回。接下来,他们排在第二位(因为经纪人缓存)。
我担心的是减少第一次选择任何查询到一秒钟。为了达到这样的性能,我认为如果历史节点将所有数据存储在内存中,这是一个很好的开始。
问题:为了强制历史节点缓存内存中的所有数据,有哪些配置参数?
答案 0 :(得分:1)
德鲁伊没有任何直接的机制来强制数据被缓存。要解决这个问题,你可以尝试在启动时触发一些虚拟查询,这会在内存中加载数据段。 启动德鲁伊查询时,有各种级别的缓存发挥作用:
前两个缓存是可配置的,可以根据需要打开/关闭,而页面缓存完全由底层操作系统控制。 因为在你的设置中你有很多可用的内存,我会建议你在启动时触发虚拟查询,这些查询跨越所有历史段,这会将所有段数据带入页面缓存中,并且稍后触发的任何查询都将从中受益。
历史和代理缓存不会缓存段的整个数据,而只会缓存每个段的查询结果,因此,如果您的查询本质上非常动态并且每次都需要不同的聚合和过滤器,这些将不会有用