elastic 6.3 源码 导入 eclipse 没有_core. 怎么运行?
Elasticsearch • God_lockin 回复了问题 • 2 人关注 • 1 个回复 • 5111 次浏览 • 2018-08-14 10:44
Mmap fs可能让大索引访问变得缓慢
Elasticsearch • kennywu76 发表了文章 • 2 个评论 • 7518 次浏览 • 2018-08-13 17:52
通过进一步分析,用Linux下的Sar -B命令,可以看到有大量的数据被pagein到内存。 虽然通过“试”的方法,定位到这个问题和5.0开始使用的mmap fs有关联,并且通过更改为nio fs以后得到解决,但问题的底层根源一直没找到。
近期有空重新去看了一下这个问题, 在Github上发现一个对os底层更熟悉的人提交并分析了类似的问题 Avoid file cache trashing on Linux with mmapfs by using madvise 。 细读之后,感觉该文抓到了问题的本质,以下基于该文做个总结:
- mmap fs对比nio fs,省去了磁盘io上的系统调用,并且不需要在jvm内部做io缓存,也减轻了GC压力。 所以通常来说,mmapfs的性能应该更高。 这也是为什么lucene推荐使用mmap fs,并且ES从5.0开始做为默认的store配置的原因。
- 然而,mmap系统调用,在内核层面默认会有一个2MB的预读大小设置,也就是说,当映射了一个大文件以后,即使读取其中1k个字节,mmap也会预读取2MB的数据到缓存。 这种策略是基于文件的访问大多数是顺序的假设。
- 在ES这个特定的应用场景,如果某数据结点上索引不是很大,系统剩余缓存也足够,一般不会有问题。但是如果是大数据应用场景,典型的如海量的日志ELK应用,则可能对大索引的搜索聚合,产生较多的随机磁盘访问。 从而mmap的预读策略,可能会导致大量的无用数据从磁盘读取到系统缓存。 在系统可用的缓存不是非常宽裕的情况下,某些极端场景下,会导致热数据被过于频繁的踢出内存,再反复读入,让磁盘IO不堪重负。
- Lucene有一个NativePosixUtil.madvise(buffer,NativePosixUtil.RANDOM)的native调用,可以用于指导内核对mmap过的文件做读取的时候,禁用预读。 上文作者将该调用hack进lucene代码,做搜索对比测试。 结论是对于磁盘io和cache的消耗,niofs都要好于mmapfs,而patch过的mmapfs则比niofs更好。
- 作者的测试仅限于搜索,对于其他类型的io操作,如写入,merge没有做过详尽测试,因此不清楚利弊。
- ES官方开发人员认为这是一个有趣的发现,值得深入去探究。对于用户报告的mmap fs性能比nio fs更差的问题,猜测可能是在大索引读取的场景下,预读带来的额外开销,抵消了相对niofs节省的系统调用等开销。
- ES官方提到Lucene已经有一种类似功能的store,叫做NativeUnixDirectory(显然ES目前还没有对这种store的支持),用户动手能力强的话,应该可以利用这个store自己写一个ES plugin。 另外提到JAVA 10提供了O_DIRECT to streams / channels ,似乎官方打算等这个出来以后再看怎么处理这个问题。
- 要注意,这个预读是mmap层面的,和块设备的预读是两回事。 我们曾经尝试过使用 blockdev --setra 这个linux命令取消块设备预读,证实无法解决这个问题。
结论: 如果ES结点上会存放海量的索引数据,经常会有大索引(如1TB+)的搜索聚合操作,使用NIOFS会更安全,可以避免很多怪异的性能问题。
Filebeat在配置文件中配置了自身的日志输出,怎样修改日志输出的格式
Beats • chzhty001 回复了问题 • 3 人关注 • 5 个回复 • 8289 次浏览 • 2018-09-04 16:36
es集群删除某个索引,会导致relocate吗
Elasticsearch • laoyang360 回复了问题 • 4 人关注 • 1 个回复 • 1254 次浏览 • 2018-08-13 23:19
怎么删除包含中文字符的索引,如图:
Elasticsearch • rochy 回复了问题 • 3 人关注 • 2 个回复 • 3340 次浏览 • 2018-08-13 17:13
es自动按天创建索引,越来越多,如何删除
Elasticsearch • cc1079154808 回复了问题 • 5 人关注 • 6 个回复 • 9115 次浏览 • 2020-08-18 21:20
logstash同步postgresql数据库到ES,索引类型设置失效,全部变成了doc [问
Logstash • zqc0512 回复了问题 • 3 人关注 • 3 个回复 • 4348 次浏览 • 2018-08-14 14:57
社区日报 第362期 (2018-08-13)
社区日报 • cyberdak 发表了文章 • 0 个评论 • 1656 次浏览 • 2018-08-13 10:03
http://t.cn/RDTns2Y
2.利用HDFS备份实现 Elasticsearch 容灾。
http://t.cn/RDT3UHT
3.360私有云平台Elasticsearch服务初探。
http://t.cn/RYDV14C
活动预告:
Elastic 中国开发者大会预热票发售进行中
https://conf.elasticsearch.cn/2018/shenzhen.html
编辑:cyberdak
归档:https://elasticsearch.cn/article/753
订阅:https://tinyletter.com/elastic-daily
【已处理】
Elasticsearch • rochy 回复了问题 • 2 人关注 • 1 个回复 • 1167 次浏览 • 2018-08-13 09:06
社区日报 第361期 (2018-08-12)
社区日报 • 至尊宝 发表了文章 • 0 个评论 • 2394 次浏览 • 2018-08-12 09:58
http://t.cn/RDWHBvW
2.Elasticsearch安全性:身份验证,加密,备份。
http://t.cn/RDWl15I
3.(自备梯子)数据科学中必备的数学知识。
http://t.cn/RDWYsfF
活动预告:
Elastic 中国开发者大会预热票发售进行中
https://conf.elasticsearch.cn/2018/shenzhen.html
编辑:至尊宝
归档:https://elasticsearch.cn/article/752
订阅:https://tinyletter.com/elastic-daily
Caused by: java.lang.NoClassDefFoundError: org/apache/lucene/search/join/ToParentBlockJoinQuery
Elasticsearch • laoyang360 回复了问题 • 2 人关注 • 1 个回复 • 3077 次浏览 • 2018-08-11 21:38
社区日报 第360期 (2018-08-11)
社区日报 • bsll 发表了文章 • 0 个评论 • 1749 次浏览 • 2018-08-11 14:42
- 如何根据自己的日志记录来选择ES集群结构?
[http://t.cn/RDpOkya](http://t.cn/RDpOkya)
- 一款计算向量相似度的插件。
[http://t.cn/R6Nt4X3](http://t.cn/R6Nt4X3)
- 让 Kibana 支持 Nested document的插件。
[http://t.cn/RDIeIbq](http://t.cn/RDIeIbq)
活动预告 - 活动预告:Elastic 中国开发者大会预热票发售进行中
https://conf.elasticsearch.cn/2018/shenzhen.html
kibana+xpack怎么添加用户,且给这个用户看到相关的索引。求教
Kibana • zh_gavin 回复了问题 • 4 人关注 • 4 个回复 • 4205 次浏览 • 2018-10-29 15:58
es慢查询log问题
Elasticsearch • JackGe 回复了问题 • 4 人关注 • 4 个回复 • 3173 次浏览 • 2018-09-07 21:05
index.cache.field.type在ES5.5.0中如何设置
回复Elasticsearch • LXJ 发起了问题 • 1 人关注 • 0 个回复 • 2409 次浏览 • 2018-08-10 18:19