企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
1. 增加 File System Cache 的内存大小 es 查询依赖操作系统的 File System Cache,增加其大小可提高性能,如果能增加到和数据所占用硬盘一样大, 那么es 直接就相当于在内存中查询了, 查询不需要去和硬盘交互了。 2. 优化es索引字段 在创建es索引时,尽量只把需要的字段放到es中,这样es字段占用的内存就缩小了。 3. 数据预热 经常会有人访问的数据,提前访问一下,这样数据就会保存到 file system cache 中,下次用户访问的时候,查询性能会好很多。 4. 冷热数据分离 数据拆分,把冷热数据存储到不同的索引中,大量不搜索的字段,拆分到别的存储中去并且部署到不同的物理机上,类似mysql分库分表的垂直拆分。保证热点数据访问的性能。这样的话热数据本身就少,内存足够的话全都保留在file system cache里面了,就可以确保热数据的访问性能是很高的。 5. 禁止深度分页查询 限制分页的总页数,很多知名网站的搜索页码都是有上限的,搜索网站也是如此,限制分页总页码很有必要。 深分页查询性能很差,es 默认也限制了查询的总条数,之前做测试2亿多条es数据,查询最后一页直接把系统卡死到了,当然我们的服务器本身也不行。