Elasticsearch6.2服务器升配后的bug(避坑指南)


Posted in Servers onSeptember 23, 2022

本篇文章记录最近一次生产服务器硬件升级之后引起集群不稳定的现象,希望可以帮到有其它人避免采坑。

一、问题描述

升级后出现的异常如下:

出现限流日志:stop throttling indexing: numMergesInFlight=8, maxNumMerges=9应用写入集群的rt耗时变高,同时集群监控的indexing的时长也变高mlocked的内存调用一直在增长

Elasticsearch6.2服务器升配后的bug(避坑指南)

二、升级过程升配前

ES version:6.2.4

配置:32C64G

环境:阿里云ecs自建

gc:cms

jvm:30GB

升配后

ES version:6.2.4

配置:64C128G

环境:阿里云ecs自建

gc:cms

jvm:30GB

三、处理步骤

升配之后第二天首先应用表现出异常,写入ES的耗时变高了好十几倍,从40ms上升到600ms;升配导致集群变慢还是头一次遇到。通过对集群监控分析集群整体负载正常比升配之前有所下降,但是indexing的写入耗时监控确实比升配之前增长了很多。在ES的输出日志中出现了异常日志"stop throttling indexing: numMergesInFlight=8, maxNumMerges=9";

1.限流处理

当时怀疑应该是这个限流导致,ES的限流的主要目的是出于对集群的保护避免产生过多的段影响性能,说白了就是段的合并跟不上写入的速度,所以先来解决这个限流的问题,

由于配置文件没有配置最大线程数和最大的合并线程数,所以这两个值是用的是默认值

Spinning media has a harder time with concurrent I/O, so we need to decrease the number of threads that can concurrently access the disk per index. This setting will allow max_thread_count + 2 threads to operate on the disk at one time, so a setting of 1 will allow three threads.

index.merge.scheduler.max_thread_count
The maximum number of threads on a single shard that may be merging at once. Defaults to Math.max(1, Math.min(4, Runtime.getRuntime().availableProcessors() / 2)) which works well for a good solid-state-disk (SSD). If your index is on spinning platter drives instead, decrease this to 1.

Elasticsearch6.2服务器升配后的bug(避坑指南)

注意:在6.x版本之后已经取消了"indices.store.throttle.max_bytes_per_sec",所以现在只能通过调整max_thread_count,max_merge_count,默认max_thread_count最小是1最大是4,如果是机械盘推荐设1如果是ssd盘可以设成4或者更高,max_merge_count默认等于max_thread_count+5,也可以单独设置

可以通过命令查看默认的集群参数配置:

GET _settings/?include_defaults

可以配置到配置文件当中,也可以通过以下命令针对索引进行动态设置:

PUT index_name/_settings 
{
    "index.merge.scheduler.max_thread_count": 4,
    "index.merge.scheduler.max_merge_count": 20
}

2.mlock

通过修改线程数之后,限流的问题解决了,但是应用的写入rt耗时问题还是没有得到解决 。通过对"hot_threads"进行分析发现主要的耗时还是在merge和index两大块,并且通过os层面的监控发现mlock的占用内存一直在增长,启动参数配置文件设置在内存锁定“bootstrap.memory_lock: true”不明白为什么还会出现mlock的增长。

处理办法:

将硬件配置降回到32C64G问题解决,增加一副本来提升查询性能

3、总结

经过3天问题排查,网上也没有找到类似的案例,网上更多的还是限流相关的案例,总结下来应该还是当前版本对于大内存的处理相关的bug,在7.x版本没有出现类似的内存问题

到此这篇关于Elasticsearch6.2服务器升配后的bug的文章就介绍到这了,更多相关Elasticsearch6.2服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
Mar 09 Servers
nginx搭建图片服务器的过程详解(root和alias的区别)
Mar 31 Servers
扩展多台相同的Web服务器
Apr 01 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
Feb 12 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
Windows server 2022创建创建林、域树、子域的步骤
Jun 25 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
Sep 23 #Servers
源码安装apache脚本部署过程详解
Sep 23 #Servers
教你使用Ubuntu搭建DNS服务器
Sep 23 #Servers
windows server2012 R2下安装PaddleOCR服务的的详细步骤
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 #Servers
服务器nginx权限被拒绝解决案例
Sep 23 #Servers
Fluentd搭建日志收集服务
Sep 23 #Servers
You might like
php error_log 函数的使用
2009/04/13 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP框架性能测试报告
2016/05/08 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
对js关键字命名的疑问介绍
2014/04/25 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
python时间time模块处理大全
2020/10/25 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
企业环保标语
2014/06/10 职场文书
英语教研活动总结
2014/07/02 职场文书
庆六一活动总结
2014/08/29 职场文书
给客户的检讨书
2014/12/21 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python