Elasticsearch模块功能之-索引存储(Store)

释放双眼,带上耳机,听听看~!

该模块可以控制索引数据的存储方式,索引可以存储在内存和磁盘上。使用内存方式可以得到更好的性能,但受限于实际的可用的物理内存大小。

store level throttling

Elasticsearch中的segments merge采用异步的方式,但系统低IO的情况下还是会影响索引和查询操作。想要解决这种问题,Elasticsearch提供两种方式(索引级别和节点 级别)的配置。

节点级别配置

indices.store.throttle.type:
merge

indices.store.throttle.max_bytes_per_sec:
5mb //默认20mb

如上设置之后,该节点上的segments merge不会超过5mb/s

索引级别设置:

index.store.throttle.type:
node

index.store.throttle.max_bytes_per_sec:10mb

如上设置是基于 索引的,可以跨多个节点。

文件系统的存储类型

索引的存储类型有几种,
可以
使用
index.store.type: niofs
进行配置,在创建索引的时候也可以动态
指定。

               
simple fs
对应Lucene中的
SimpleFsDirectory

 
这种实现的并发性能较差,多线程会出现瓶颈。当索引需要持久化最好使用
niofs

               
nio fs
对应Lucene中的
NIOFSDirectory

。这种方式可以多个线程并发地读同一个文件。

          **     
mmapfs**
:对应Lucene中
MMapDirectory。这种方式将映射的文件加载到虚拟地址空间。在使用该类型之前,请确定是否有足够的虚拟内存。在linux环境下可以使用一下命令进行调整:


1
2
1sysctl -w vm.max_map_count=262144
2

希望永久生效可以使用在
/etc/sysctl.conf中配置
vm.max_map_count

**      hybrid mmap / nio fs**

默认类型,这种方式使用以上两种方式,为了减少对系统的影响,目前Lucene只在term directory和doc values文件映射到内存中。其他的情况都是用Lucene的
NIOFSDirectory。

              
memory
:对应Lucene中的
RamIndexStore。将索引存放在
Jvm
堆空间之外内存中。

【参考】http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-store.html

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索