前两天,生产上的ES服务所在的机器内存使用率到达了95%左右,之后服务器一直维持在这个水平,但我觉得这个占用率太高了。
环境描述:
ES所在服务器内存为12G,ES服务初最大内存设置为6G
因为对ES内存这块不是很了解,不敢贸然减少最大内存,看了网上的一些资料,重启了下ES,重启后,ES所在服务器内存下降明显,降为50%左右。
在这里,我有些疑问,希望大家能多多指教:
1) 为啥es已经设置了最大内存,但是后面其进程占用的内存却远远大于6G?
2) es的内存管理机制是怎样的,为啥我的服务内存一直在增加,却不会释放?
环境描述:
ES所在服务器内存为12G,ES服务初最大内存设置为6G
因为对ES内存这块不是很了解,不敢贸然减少最大内存,看了网上的一些资料,重启了下ES,重启后,ES所在服务器内存下降明显,降为50%左右。
在这里,我有些疑问,希望大家能多多指教:
1) 为啥es已经设置了最大内存,但是后面其进程占用的内存却远远大于6G?
2) es的内存管理机制是怎样的,为啥我的服务内存一直在增加,却不会释放?
7 个回复
zhangrui90 - z
赞同来自:
2. gc 就会释放一部分内存
zttech
赞同来自:
zttech
赞同来自:
就是这个,看完了你就明白了
medcl - 今晚打老虎。
赞同来自:
camuss
赞同来自:
tulong - 80 IT
赞同来自:
看了wood大叔的那篇文章,还是没定位到问题。
1、我查看了segment占用集群总内存,才几十M。同时query_cach,request_cach都很小。
2、jvm内存分配的30G,从监控及统计结果看,使用率在70%;
但是目前从监控看,es占用总的系统内存超过90%。通过/_nodes/stats看,占用也是超过90%
匿名用户
赞同来自: