elasticsearch-运维-文件缓存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch-运维-文件缓存相关的知识,希望对你有一定的参考价值。

参考技术A 服务器上部署了ES5集群,通过zabbix监控发现cpu load呈锯齿状,且ES所在磁盘iops read和cpu load有一样的锯齿,可证明ES周期性的发生大量读磁盘操作。通过分析,ES周期性大量读磁盘是因为QA每10分钟发起搜索业务请求
此外,该机器上有marathon超卖内存的情况存在,当关闭超卖的服务时,iops read及cpu load监控正常

按理说QA监控发起的搜索请求不会变化,ES应该有索引文件缓存。所以首先分析ES索引文件缓存的情况
通过/proc/$pid/smaps可查看进程内存分布及映射情况,如下图所示,size表示通过mmap映射的文件的大小,Rss表示该文件mmap实际内存的大小,Pss表示当某个文件被多个进程同时使用时,平均每个进程占用的内存大小

写个脚本,分析一下文件缓存使用情况:

索引5s96iIBfS6KivdgDrb8u-Q映射文件大小为44.3g,实际占用物理内存838M,对比其他服务器同索引文件缓存使用情况发现,大于该机器占用的物理内存(2.1g 对比 838M)
通过监控ES进程的smaps文件发现当cpu飙升即搜索请求时,文件缓存占用高达2-3G,请求完成一段时间后文件缓存将至700-800M,此时可判定是因为文件缓存被系统踢掉导致频繁发生磁盘io
通过分析源码可知ES使用MMapDirectory打开索引文件,其内部FileProvider调用C库的mmap函数打开文件,所以是由系统托管文件缓存
为何操作系统会踢掉ES文件缓存?猜测是因为marathon超卖导致内存使用过多,操作系统需要回收文件缓存,而QA监控又是10分钟请求一次,导致ES无法持有文件缓存

通过调整操作系统内核参数vm.vfs_cache_pressure(100 => 80)来让操作系统尽量少回收文件缓存,调整后相关监控如下

ES节点内存维持较之前提升至少500M

通过监控分析smaps文件能获取各索引文件物理内存占用情况,发生堆外内存异常时可排查是哪些索引文件导致的,即可大致推断是什么业务什么类型的查询
heap内存可以使用jhat、jmap分析使用情况
匿名页缓存可在jvm启动参数加上-XX:NativeMemoryTracking=[off|summary|detail]后,通过jcmd $pid VM.native_memory detail分析

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运维架构视频教程

 

14套精品课程介绍:

1、14套精品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品;

2、14套资源包含:全套完整高清视频、完整源码、配套文档;

3、知识也是需要投资的,有投入才会有产出(保证投入产出比是几百上千倍),如果有心的朋友会发现,身边投资知识的大都是技术经理或者项目经理,工资一般相对于不投资的也要高出很多;

 


技术分享图片
 

总目录:14套java高级,缓存架构,深入Jvm虚拟机,Elasticsearch全文检索,Dubbo分布式Restful服务视频教程

 

技术分享图片

 

第一套:亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构(第一版)

技术分享图片

技术分享图片技术分享图片

技术分享图片技术分享图片技术分享图片技术分享图片

 

第二套:亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构(第二版)

技术分享图片技术分享图片技术分享图片

技术分享图片

 

 第三套:Elaticsearch视频两套—完整版(核心篇和高级进阶篇)

技术分享图片

Elasticsearch顶尖高手系列课程-核心知识篇

技术分享图片技术分享图片技术分享图片

 

Elasticsearch顶尖高手系列-高手进阶篇

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

第四套:深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)

技术分享图片

技术分享图片

技术分享图片

 

第五套:Spring与Dubbo分布式REST服务开发实战

技术分享图片

技术分享图片

技术分享图片

 

第六套:MySQL大型分布式集群

技术分享图片

技术分享图片

技术分享图片

 

第七套:JAVA-ACE-架构师系列视频教程-RocketMQ

技术分享图片

 

第八套:Spring boot入门到精通课程

技术分享图片

技术分享图片

 

第九套:Spring 进阶视频教程

技术分享图片

 

第十套:Spring boot入门到精通课程

技术分享图片

技术分享图片

 

第十一套:SSpring Cloud 第一季视频教程

技术分享图片

技术分享图片

 

第十三套:从无到有搭建中小型互联网公司后台服务架构与运维架构

技术分享图片技术分享图片技术分享图片技术分享图片

技术分享图片

技术分享图片

 

 第十四套:Java并发编程原理与实战

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 


以上是关于elasticsearch-运维-文件缓存的主要内容,如果未能解决你的问题,请参考以下文章

Linux企业运维——ELK日志分析平台(上)安装与配置ES图形化管理插件

Linux企业运维——ELK日志分析平台(上)安装与配置ES图形化管理插件

初探ELK-elasticsearch使用小结

elk+redis+filebeat

elasticsearch 配置详解

ELK-elasticsearch