OceanBase-OCP-bug之 fgc问题处理

news/2024/11/18 23:02:58/文章来源:https://www.cnblogs.com/bayaim/p/18387999

一、遇到问题时,处理过程

关于调整ocp-server的jvm大小解释:1、在docker容器内设置export JVM_HEAP_SIZE=xxxx,然后重启对应的ocp-server进程(/home/admin/ocp-server/bin/ocp-server),注意这里的大小不要超过docker容器的大小上限。2、在调整完ocp容器的内存大小之后(docker update --memory=60g <container_id_or_name>),重启ocp容器,容器内的ocp-server进程的jvm大小也会跟着变化,这个原因还是因为/home/admin/ocp-server/bin/ocp-server这个问题里面这个文件定义了ocp-server启动时的大小,如果变量JVM_HEAP_SIZE没有设置的话,它是根据当前系统可用内存的7/10来分配。docker  ps 
docker  stats查看容器内存CPU使用情况:
docker stats【1】 、ocp不定期自动挂掉-fgc问题 处理情况1============================================【处理】:修改缓冲池资源的先添加ocp 容器的内存资源,
docker update --memory 36G --memory-swap -1  {CONTAINER_ID}, 现在是20G ,可以先加到36G, 然后在  ocp_meta租户的ocp库 里面执行下这个 sql,replace into config_properties(`key`, value) values ('ocp.alarm.detect.executor.core_pool_size', 10) ,('ocp.alarm.detect.executor.max_pool_size', 20);  加资源三个节点都要加,然后再重启下ocp ,我们再观察下。   麻烦再把 ocp docker 里/home/admin/logs/ocp , gc开头的日志拿一下有空可以到 ocp 的容器里切换到  admin 用户再执行下 jstat -gcutil <ocp-server-pid> 看下 FGC 
FGC如果是0那就没有什么问题,如果还是有数值,麻烦再联系下我们,1、
ocp 的容器里切换到  admin 用户再执行下 jstat -gcutil <ocp-server-pid> 看下 FGC [19613 是OCP的进程ID的意思]
ps  -ef  |  grep  ocp 
jstat  -gcutil  19613
stats 看下延迟的store是否有gc,oms docker里
jstat -gcutil `ps -ef | grep storexxxx | grep java | awk '{print $2}'` 3000原因分析:
客户环境: ocp_monitor租户 4c16g,这个设置偏小,
影响的主要是内存,CPU 应该对 OCP 的影响不太大,可以看下容器的 load
top 里面就有:机器的 load1、load5、load15 ,哪个进程占用大的内存。
尝试 meta 集群需要加资源,
尝试 ocp上调整unit资源是不是可以解决问题。工单总结:
1、增加客户OCP内存由20G ——>  36G ,OCP资源观察很多天相对运行稳定。
2、增加cpu的话从8c增加16C,并且 OCP  扩大 64G 后重启 java 进程。
3、建议暂时把awr功能关了,待下个版本修复。这个不确定具体时间,研发老师现在规划还没完整的出来
如果开启awr会导致fcg,那这可能还需要优化,可以建议关掉这个功能,等后续版本优化好了再升级ocp,打开对应功能。目前,客户环境负载较高,未发生故障和告警,运行稳定但是未能根本解决问题,1是客户增大资源配置,2是等新版解决BUG升级。问题就是增加租户副本的时候会卡住并失败,重试才能成功,我怀疑是不是监控采集太频繁导致FGC让任务失败,具体的麻烦帮忙看一下在 metadb 里执行下这个 sql ,里面可以查下管理的规模
select count(1) from ob_cluster;
select count(1) from ob_tenant;
select count(1) from compute_host;select * from task_definition where name = 'Collect cluster snapshot'
select `key`, value from config_properties where `key` like '%ocp.alarm.detect.executor%';ocp-server 的容器配置需要看下容器的信息,或者你在镜像里面执行下 ps -ef | grep java 
replace into config_properties(`key`, value) values ('ocp.alarm.detect.executor.core_pool_size', 20) ,('ocp.alarm.detect.executor.max_pool_size', 30);执行下这个 sql,然后挨个重启下 ocp 的镜像,之后再观察下是否还有 fgc 吧【2】 、ocp不定期自动挂掉-fgc问题 处理情况2============================================
处理办法:
1、ocp-server 的容器配置需要看下容器的信息,执行下 ps -ef | grep java ,再进入容器中,运行:jstat -gcutil <pid>   ,pid 就是 java 的进程,观察 fgc 使用情况是否很高。
2、看下 ocp-server 的资源分配了多少,管理了多少集群、租户、主机规模
metadb 下执行以下sql:select count(1) from ob_cluster;
select count(1) from ob_tenant;
select count(1) from compute_host;
select * from task_definition where name = 'Collect cluster snapshot'
select `key`, value from config_properties where `key` like '%ocp.alarm.detect.executor%';修改执行下这个 sql,将两个参数再调小:
replace into config_properties(`key`, value) values ('ocp.alarm.detect.executor.core_pool_size', 20) ,('ocp.alarm.detect.executor.max_pool_size', 30);然后重启下各个 ocp 的镜像,之后再观察下是否还有 fgc 原因:
OCP有些任务比较消耗资源,告警每分钟会并发 100 (默认值)个线程查询监控数据,将两个参数再调小观察验证:
root@ocp_metna
use  ocp  
metadb执行
select count(1) from ocp_exporter_address where status='inactive'; 
select count(1) from ocp_exporter_address where status='active'; 
点击一下右上角的实时按钮,看OCP界面是否有数据

 

二、再说,故障现象

现象1:

 

现象2:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/789468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oceanbase-3分钟带你看懂 GC 日志!

3分钟带你看懂 GC 日志! ------------------------------------------------------------------------------------01、背景介绍 在之前的几篇文章中,我们介绍了 JVM 内部布局、对象的创建过程、运行期的相关优化手段、垃圾对象的回收算法以及垃圾收集器等相关知识。 那么如何…

网盘+git个人ue大文件备份

88VIP的夸克网盘不用太可惜了,所以我用他的自动备份功能来备份我正在做的UE项目的.git文件,这样既可以留存版本更新信息,又可以存大文件了。做个人备份的话就懒得用gitlfs了,直接都放网盘里。回头本地文件丢了的话,就把.git下下来然后版本回退一下

maven 插件之 maven-shade-plugin,解决同包同名 class 共存问题的神器

开心一刻 有一天螃蟹出门,不小心撞倒了泥鳅泥鳅很生气地说:你是不是瞎啊!螃蟹说:不是啊,我是螃蟹概述 maven-shade-plugin 官网已经介绍的很详细了,我给大家简单翻译一下This plugin provides the capability to package the artifact in an uber-jar, including its dep…

数据跨境流动出新规,企业数据出海如何保障数据安全性?

数据出海是企业拓展海外市场、提升品牌影响力、应对市场竞争、实现产业升级和创新驱动的重要途径,随着全球化和数字化趋势的深入发展,数据出海成为越来越多企业的选择。为了在数据跨境高效流动的同时,确保国家和社会安全,保护公众利益,许多国家都相继出台法律法规来规范和…

一个批量爬取微博数据的神器

分享一个能批量下载微博图片/视频/评论的工具100.一个批量爬取微博数据的神器 分享一个能批量下载微博图片/视频/评论的工具 ‍ 起因 偶尔玩玩微博,最近看到了一名专业的 coser,因此想要下载一些她的微博,方便观看,也避免以后平台倒闭/博主退坑的情况导致无法看原微博。 ​…

数据无界:大型企业如何实现多区域文件安全传输的无缝体验?

随着企业全球化发展,大型企业分支机构的分布越来越广泛,多区域文件传输需求也随之增加。目前大型企业多区域文件数据存储和传输交换现状如下: 1.文件存储现状:集中和分散并存,局部集中,整体分散; 2.文件存储管理:不同区域、分支机构、业务部门,文件存储方案差异化,各…

Redis高可用方案:使用Keepalived实现主备双活

注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。 1、使用版本说明 Redis版本:5.0.2 Keepalived版本:1.3.5 Linux 版本:Centos7.9 查看Redis版本: /usr/local/redis/bin/redis-cli -v查看Keepalived版本信息: rpm -qa|grep keepalived 或者 keepalived -v2…

安全高效,一键搞定:Ftrans文件摆渡系统让数据流转更简单!

随着互联网技术的不断发展,网络攻击手段也不断的更新,为了防止外部攻击和内部数据泄密,高科技企业一般会实施内外网隔离,甚至在内部网络中又划分出业务网、办公网、生产网等进行隔离。但基于业务的需求,隔离网间仍存在文件传输的需求。如何通过文件摆渡系统,在保证数据安…

差模电感与共模电感总结

差模电感与共模电感总结 差模干扰信号和共模干扰信号 差模干扰信号是两个输入电源线之间反方向构成的电流回路信号。 共模干扰信号是两个输入线上同方向与大地构成的电流回路信号。 简而言之: 差模信号就是两个大小相等、方向相反的信号。 共模信号就是两个大小相等、方向相同…

Datawhale X 李宏毅苹果书AI夏令营深度学习进阶(二)

一.动量法 在上一个博客中,我们提到了动量法,现在继续补充如图所示,红色表示负梯度方向,蓝色虚线表示前一步的方向,蓝色实线表示真实的移动量。一开始没有前一次更新的方向,完全按照梯度给指示往右移动参数。负梯度方向跟前一步移动的方向加起来,得到往右走的方向。一般…

LCA 最近公共祖先

概念 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 感觉其实看个图就懂了吧图中例子 \(lca(u,v)=x\) 这个问题理解概念不难,主要是学会如何快速求来,下面介绍三种方法。 方法 1.暴力法 2. 倍增法…

ChatGPT学习之旅 (10) 系统全球化小助手

本篇我们一起来了解下如何基于ChatGPT中来帮助我们解决一些系统开发中的多语言/全球化/本地化的任务,通过给到清晰的提示词,让这些任务的解决时间缩短一半以上。大家好,我是Edison。 上一篇我们写了一个运维小助手的prompt,它帮我们写一些我们开发者不太愿意做的一些运维小…