該模塊可以控制索引數據的存儲方式,索引可以存儲在內存和磁盤上。使用內存方式可以得到更好的性能,但受限於實際的可用的物理內存大小。
store level throttling
文件系統的存儲類型
索引的存儲類型有幾種,可以使用index.store.type: niofs進行配置,在創建索引的時候也可以動態指定。
simple fs:對應Lucene中的SimpleFsDirectory。 這種實現的併發性能較差,多線程會出現瓶頸。當索引需要持久化最好使用niofs。
nio fs:對應Lucene中的NIOFSDirectory。這種方式可以多個線程併發地讀同一個文件。
mmapfs:對應Lucene中MMapDirectory。這種方式將映射的文件加載到虛擬地址空間。在使用該類型之前,請確定是否有足夠的虛擬內存。在linux環境下可以使用一下命令進行調整:
sysctl -w vm.max_map_count=262144
希望永久生效可以使用在/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