服务内存优化思路

【需求背景】

由于某个服务在访问量不大的情况下,出现频繁的 full gc,配置内存为 1.5g,但是还是不够用,经常占用在 1.3g 左右。

【内存分析】

1、使用 MAT 对 dump 日志进行分析

通过 dominator-tree 可以看出 java.lang.Thread 和 org.apache.dubbo.common.threadlocal.InternalThread 占用内存过高。

其中 java.lang.Thread 有 2000 多个,org.apache.dubbo.common.threadlocal.InternalThread 线程居然有 6000 多个。

2、其中 org.apache.dubbo.common.threadlocal.InternalThread 线程每个占用 0.05M,算比较合理,只需要根据业务需求适当调整线程数即可。

3、以下:进一步分析 java.lang.Thread 为啥占用这么高。

其中以 XNIO 为主,这个线程是通过:server.undertow.worker-threads=2000 这个参数配置的。

以这个 ThreadLocalMap 最大了,保存的是服务列表信息。

通过分析最终定位到是 org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicator#health 这个方法引起的,这里有返回了 services 的信息。

这里是调用 /actuator/health 这个接口返回的,这个接口会在 k8s 心跳探测:/api/status/ready 时调用

解决办法:通过配置参数 spring.cloud.discovery.client.health-indicator.enabled=false 可以关闭服务列表的返回。(由于我们使用 nacos 是 AP 模式,因此不需要强制依赖服务列表的健康检查,因此可以考虑关掉

【解决方案】

1、通过配置参数 dubbo.provider.threads=2000 调整线程数,降低 dubbo 生产者线程数。

2、通过配置参数 spring.cloud.discovery.client.health-indicator.enabled=false 关闭心跳探测时,对服务列表的返回。

【优化效果】

内存由原来占用 1.3g 变成了 400M 左右了。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

145.二叉树的后序遍历

// 定义一个名为Solution的类&#xff0c;用于解决二叉树的后序遍历问题 class Solution { // 定义一个公共方法&#xff0c;输入是一个二叉树的根节点&#xff0c;返回一个包含后序遍历结果的整数列表 public List<Integer> postorderTraversal(TreeNode root) { /…

【开源】JAVA+Vue.js实现考研专业课程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高校教师管理模块2.4 考研专业模块2.5 考研政策模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 考研高校表3.2.2 高校教师表3.2.3 考研专业表3.2.4 考研政策表 四、系统展示五、核…

高级统计方法 第4次作业

作业评阅&#xff1a; 概念 2.问题 KNN分类和KNN回归都是KNN算法在不同类型数据上的应用&#xff0c;但它们之间存在明显的区别。 解决的问题类型不同&#xff1a;KNN分类适用于解决分类问题&#xff0c;而KNN回归则适用于解决回归问题。当响应变量是连续的&#xff0c;根据…

我花了5天时间,开发了一个在线学习的小网站

大三寒假赋闲在家&#xff0c;闲来无事&#xff0c;用了5天时间做了一个在线学习的小网站&#xff0c;一鼓作气部署上线&#xff0c;制作的过程比较坎坷。内心经历过奔溃&#xff0c;也经历过狂喜。 按照惯例先放出网址&#xff0c;欢迎大家来访问学习&#xff1a;www.pbjlove…

大离谱!AI写作竟让孔子遗体现身巴厘岛,看完笑不活了

大家好&#xff0c;我是二狗。 这两天我在知乎上看到了一个AI写作大翻车的案例&#xff0c;看完简直笑不活了&#xff0c;特地分享给大家一起 happy happy&#xff5e; 知乎网友“打开盒子吓一跳”一上来就抛出来了一个“孔子去世”的王炸。 首先&#xff0c;下面是一条真实新…

每日一题——LeetCode1512.好数对的数目

方法一 暴力循环 var numIdenticalPairs function(nums) {let ans 0;for (let i 0; i < nums.length; i) {for (let j i 1; j < nums.length; j) {if (nums[i] nums[j]) {ans;}}}return ans; }; 消耗时间和内存情况&#xff1a; 方法二&#xff1a;组合计数 var …

智胜未来,新时代IT技术人风口攻略-第七版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像角色先行结论 - 市场下的增量蛋糕高校助力鸿蒙 - 掀起鸿蒙教育热潮高校鸿蒙课程开设占比 - 巨大需求背后是矛盾冲突教研力量并非唯一原因 - 看重教学成果复用与效率 企业布局规划 - 多元市场前瞻视野全盘接纳仍需一段时间 - 积极正向的一…

植物神经功能紊乱不治疗最坏后果会怎样?

植物神经功能紊乱是一种常见的疾病&#xff0c;它可以对人体的生理和心理产生严重的影响。如果不加以治疗&#xff0c;其最坏的后果将会是非常危险的。 植物神经功能紊乱是由于各种原因导致自主神经系统异常活跃或抑制而引起的一系列症状的总称。自主神经系统是负责自主调…

java基础-正则表达式+文件操作+内置包装类

目录 正则表达式去除字符串前后空格&#xff1a;去除每一行中首尾的空格去除开头的 数字_ 文件操作打印当前项目路径获取文件的上级目录/和\读取文件 内置包装类System类常用方法 Number类Integer类常用方法Float和Double 正则表达式 去除字符串前后空格&#xff1a; str.tri…

uTools:打造你的个性化效率工具箱

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、什么是uTools&#xff1f;①uTools②功能 二…

进程与线程之进程的理解

首先对堆栈等进程运行过程中的内存有了更深层次的理解&#xff1a; 我们之前了解到&#xff0c;程序在运行中存在堆栈&#xff0c;字符串常量区代码区。 现在我们提出虚拟内存的概念&#xff1a;程序在运行的过程中开辟0~4G的虚拟空间使用MUU映射单元映射到物理地址上 简而言…

28V、115V、270V坦克装甲车启动电源:为现代战争注入新能量

28V、115V、270V坦克装甲车启动电源&#xff1a;为现代战争注入新能量 世界新格局的诞生后&#xff0c;现代战争已经从传统的陆地、海洋、空中扩展到了网络空间和外太空。在这种背景下&#xff0c;各种先进的武器装备不断涌现&#xff0c;为国家安全提供有力保障。28V、115V、2…

【Unity】提示No valid Unity Editor liscense found.Please active your liscense.

有两个软件&#xff0c;如果只有一个&#xff0c;点黑的不会有效果、、、、&#xff08;楼主是这个原因&#xff0c;可以对号入座一下&#xff09; 简而言之&#xff0c;就是去下载Unity Hub&#xff0c;再里面激活管理通行证 问题情境&#xff1a; 点击unity出现以下弹窗&a…

C语言-指针详解速成

1.指针是什么 C语言指针是一种特殊的变量&#xff0c;用于存储内存地址。它可以指向其他变量或者其他数据结构&#xff0c;通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存&#xff0c;以及进行复杂的数据操作。在C语言中&#…

一些PCB整改优化经验总结

一个UP的PCB整改经验&#xff1a; 当正面全局铺铜之后出现很多小铜皮碎片的时候不如不铺铜或者单面铺铜RJ45网口的地和整体的地分开&#xff0c;两地之间通过电容相连&#xff08;整板地一定要相连&#xff09;TVS这种防浪涌高压的器件的地单独铺设&#xff0c;这样当高压来临…

配电网重构知识及matlab实现

配网重构中&#xff0c;很重要的一个约束条件为配网应随时保持开环、辐射的状态&#xff1a; 配电网系统是属于闭环设计但是开环运行的系统&#xff0c;因此&#xff0c;在开关的开闭过程中&#xff0c;随时保持配电网的开环状态时很重要。Mendoza等利用图论&#xff0c;尤其是…

基于ElementUI封装省市区四级联动下拉选择

基于ElementUI封装的省市区下拉级联选择 效果 数据 最新省市区JSON数据获取&#xff1a;https://xiangyuecn.github.io/AreaCity-JsSpider-StatsGov/ 参数说明 参数说明inputNumShow下拉框的数量&#xff0c;最多4个defaultAddress默认显示省市区 例&#xff1a;[‘安徽’, …

音视频剪辑|Windows|抽帧和合帧

什么是抽帧&#xff1f; FFmpeg 抽帧&#xff08;Extracting frames&#xff09;的作用是从视频文件中按需提取单张或多张静止图像&#xff08;帧&#xff09;&#xff0c;并将它们保存为图片文件&#xff08;如 JPEG、PNG 等格式&#xff09;。这一功能在以下场合十分有用&am…

一元函数微分学——刷题(18

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 遇到绝对值函数&#xff0c;需要把它转化为分段函数&#xff0c;从而更加方便求导数&#xff1a; 3.总结&#xff1a; 遇到绝对…

Docker容器实战

"爱在&#xff0c;地图上&#xff0c;剥落~" Mysql 容器化安装 我们可以在 docker hub上&#xff0c;进入mysql的镜像仓库&#xff0c;找到适合的版本。 直接拉取镜像: docker pull mysql:latest 我们知道 msyql 的默认端口是 3306 &#xff0c;而且有密码&#x…