首先预祝各位兄弟国庆快乐~
我知道对于ES来说,官方从来都是建议把机器的一半内存交给ES,特殊的情况下,如果内存大于64G,那么最多只能给ES32G(最好是31G)的内存。
以上是建立在该机器只部署ES的情况下。
我想请教一下,因为硬件的限制,所以偶尔会遇到机器上并不只有ES一个服务,而是部署有多个服务的情况,比如我有一台服务器,内存是64G,但我上面除了部署ES之外,还部署有kafka、mysql与redis。
这样的情况虽然不是经常出现,但是我想请教各位兄弟,在这种情况下,我们该如何选择ES堆内存的大小呢?
如果还是死板的给ES分配31G的内存,那剩余64-31=33G的内存,则会由lucene、Mysql和kafka共同争夺,这样势必就会影响ES的查询性能。
所以这种情况,我们该如何考虑呢?
另外:如果ES的查询更多依赖存储于lucene中的segment的话,那么ES的堆内存具体都用来处理什么东西呢?堆内存和off-heap内存,到底哪个对ES更重要呢?
希望各位兄弟可以抽空回答我的问题,不胜感激!
祝各位身体健康、家庭幸福!
我知道对于ES来说,官方从来都是建议把机器的一半内存交给ES,特殊的情况下,如果内存大于64G,那么最多只能给ES32G(最好是31G)的内存。
以上是建立在该机器只部署ES的情况下。
我想请教一下,因为硬件的限制,所以偶尔会遇到机器上并不只有ES一个服务,而是部署有多个服务的情况,比如我有一台服务器,内存是64G,但我上面除了部署ES之外,还部署有kafka、mysql与redis。
这样的情况虽然不是经常出现,但是我想请教各位兄弟,在这种情况下,我们该如何选择ES堆内存的大小呢?
如果还是死板的给ES分配31G的内存,那剩余64-31=33G的内存,则会由lucene、Mysql和kafka共同争夺,这样势必就会影响ES的查询性能。
所以这种情况,我们该如何考虑呢?
另外:如果ES的查询更多依赖存储于lucene中的segment的话,那么ES的堆内存具体都用来处理什么东西呢?堆内存和off-heap内存,到底哪个对ES更重要呢?
希望各位兄弟可以抽空回答我的问题,不胜感激!
祝各位身体健康、家庭幸福!
3 个回复
xiaoke - http://blog.51cto.com/kexiaoke
赞同来自:
2.你机器内存是64gb,如果分配了31gb的内存给es,那么再跑个压力不是很大的myql和kafka问题也不大的。机器上做好的完整的监控,关注一下内存和cpu和负载。
3.ES对磁盘读写压力一般都会很大。所以还是不建议把mysql实例放到ES实例上
doom
赞同来自:
LZY_lee
赞同来自: