elasticsearch 索引存储深入详解
1、關于ES index存儲在內存的問題?
(1)早期ES1.X版本對ES索引存儲介紹:
原文地址:?
https://www.elastic.co/guide/en/elasticsearch/reference/1.4/index-modules-store.html?
ES1.X存儲模塊可以控制索引數據的存儲方式,索引可以存儲在內存和磁盤上。使用內存方式可以得到更好的性能,但受限于實際的可用的物理內存大小。?
早期ES1.X版本有選項將索引存儲到內存中,但是相比基于mmap的存儲方式,這種方式并沒有改善性能,所以在ES2.X版本中Memory存儲類型已經被刪除。
(2)最新的ES2.X版本(截止:2016-08-08)索引存儲介紹:
原文地址:?
https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-store.html?
ES2.X版本中該Memeory選項已經被刪除。?
現在ES2.X中在內存中映射索引使用mmap 系統調用。?
并且ES的大牛也都推薦就索引存儲而言,使用缺省默認值default_fs。
2、ES2.X文件系統存儲類型
基于文件系統的存儲是默認索引存儲方式。有不同的實現或存儲類型。最好的一個操作系統的自動選擇是:mmapfs使用在Windows的64bit系統上,simplefs使用在windows的32bit系統上,除此之外默認是用(hybrid niofs 和 mmapfs)。
可以通過修改配置文件elasticsearch.yml來指定存儲類型:?
index.store.type: niofs
當然也可以在創建索引的時候指定:
curl -XPUT localhost:9200/my_index -d '{"settings": {"index.store.type": "niofs"} }';- 1
- 2
- 3
- 4
- 5
下面是所有支持的不同存儲類型:
(1) Simple FS(簡單文件系統)
Simplefs類型是一個簡單的實現隨機訪問文件的文件存儲系統(映射到Lucene SimpleFsDirectory的)。該實現的并發性能較差(多線程是個瓶頸)。當你需要將索引持久化,最好使用niofs。
(2) NIO FS(NIO文件系統)
niofs類型是通過NIO將分片索引文件寫到文件系統上(映射到Lucene NIOFSDirectory)。它允許多線程同時讀取文件。不建議在Windows系統上使用,由于SUN JAVA實現上的一個錯誤。
(3) MMap FS(內存映射文件系統)
mmapfs類型存儲分片索引到文件系統上(映射到Lucene MMapDirectory)通過映射文件到內存中(MMAP)。?
內存映射的過程中將劃分出與被映射文件大小一樣的虛擬內存空間。使用這個類之前,請確保您有足夠的虛擬地址空間。
Linux下虛擬內存設置:
# sysctl -w vm.max_map_count=262144- 1
永久生效:
update the vm.max_map_count setting in /etc/sysctl.conf.# echo "vm.max_map_count=262144" >> /etc/sysctl.conf && sysctl -p- 1
- 2
(4)Hybrid MMap / NIO FS(缺省值, default_fs)
default_fs默認的類型是NIO FS和MMapFS,它將為每個類型的文件選擇最好的文件系統。 目前,只有Lucene的term 路徑和DOC值的文件被存儲器映射,以降低運行系統的影響。所有其他文件都使用Lucene NIOFSDirectory打開。如果你的term字典很大,地址空間設置(部分叫做“虛擬內存編輯“)也可能適用,。
3、ES索引存儲小結
一句話總結:?
在2.X版本,用戶無需關注索引存儲在內存中還是存儲在硬盤中。使用默認的存儲設置default_fs,以達到最優性能?
在Windows的64bit系統上使用 mmapfs ;?
在windows的32bit系統上使用 simplefs ;?
除此之外默認使用 default_fs (hybrid niofs 和 mmapfs),如Linux系統。
4、細節討論
https://discuss.elastic.co/t/how-to-set-elasticsearch-index-store/57556/2
——————————————————————————————————?
更多ES相關實戰干貨經驗分享,請掃描下方【銘毅天下】微信公眾號二維碼關注。?
(每周至少更新一篇!)
來源:http://blog.csdn.net/laoyang360/article/details/52166095
總結
以上是生活随笔為你收集整理的elasticsearch 索引存储深入详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch索引原理
- 下一篇: 如何在多台web服务器上共享sessio