ES 大数据量速度优化

(1)性能优化的杀手锏——filesystem cache (即 os cache,操作系统的缓存)

es的搜索引擎严重依赖于底层的filesystem cache,

你如果给filesystem cache更多的内存,尽量让内存可以容纳所有的indx segment file索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高。

比如说,你一共要在es中存储1T的数据,那么你的多台机器留个filesystem cache的内存加起来综合,至少要到512G,

至少半数的情况下,搜索是走内存的,性能一般可以到几秒钟,2秒,3秒,5秒

如果最佳的情况下,filesystem cache 的大小 大于 ES所需要搜索的数据大小。

ES中只写入需要索引的那几个字段,不要把整条记录都写到 ES中。

比如说,ES就写入 id name age三个字段就可以了,然后你可以把其他的字段数据存在hbase或mysql中,建议是HBase。

hbase的特点是适用于海量数据的在线存储,就是对hbase可以写入海量数据,不要做复杂的搜索,就是做很简单的一些根据id或者范围进行查询的这么一个操作就可以了

从es中根据name和age去搜索,拿到的结果可能就20个doc id,然后根据doc id到hbase里去查询每个doc id对应的完整的数据,给查出来,再返回给前端。

Guess you like

Origin blog.csdn.net/zsj777/article/details/120016228