记一次老商家端应用内存突然飚高原因分析 | 京东物流技术团队

news2024/11/15 14:22:35

一、排查过程

问题发现是因为当时接到了内存UMP报警信息,如下:

通过查看PFinder发现内存一直在增长,没有停止迹象,触发fullGC也并没有下降趋势:

当机立断,先立即去NP上摘除了此台机器流量,然后继续观察,发现内存依然在不断增长。

随即查看故障分析,并没有得到有效信息:

因为流量已经摘除,那么继续观察到底哪里的问题,约半小时后然后接到了机器的宕机告警如下:

由于在应用启动参数里配置了dump路径,那么就马上去把dump文件下载下来分析。

随后找到对应IP机器的目录,下载了dump文件java_pid432.hprof核对时间没有问题,随即使用MAT工具开展分析,通过泄露分析结果直接就可以看出problem1与problem2都是一个同一个问题,2个线程分别占用1.8G、1.5G:

通过查看问题对应的代码类方法,发现该方法功能是"导出WMS保质期商品数据",该方法会调用库存分页接口查询保质期商品,大致如下:

1、查询无数据直接导出空表;

2、第一页查询总量小于1000的话直接把数据写入第一个sheet并导出表格;

3、第一页查询总量大于1000则循环分页查询,每1000条数据生成一个sheet表格进行导出。

可以看到,org.apache.poi.hssf.usermodel.HSSFWorkbook对象数量已经达到702个了。

翻看具体代码部分如下:

二、解决思路

经过对该功能代码分析,本着先解决问题的原则,先将循环调用功能进行限制,通过ducc配置导出页数大小限制,来避免一直循环调用。

至此,问题初步解决完毕,调整后没有出现问题。

但是,这个功能的优化并没有结束,随后将该问题及功能逻辑反馈给产品及库存相关方,一起讨论解决商家导出的问题,一方面我们要保障商家体验,另一方面又要确保系统稳定性。后续要从这2方面入手进行功能的优化,不断为提升商家体验而努力。

三、总结分析

回过头来咱们再分析以下这个功能,通过系统日志及监控,发现该功能商家日常使用较少,并且大部分商家的保质期商品较少,极少数会存在有非常多保质期商品数据的情况。但是一旦出现这样的问题就会很致命,所以在导出功能设计之初我们就应该考虑到将来任何可能出现的情况,并做好提前的预防。另外就是要做功能的限制,例如导出次数、导出数据量的限制功能来保障商家体验及系统的安全稳定。

另外再说一下,对导出功能的理解,对于商家而已,导出需求是正常的。但是过多大批量数据的一起导出无论对哪个系统来说都是非常危险的一个功能。以下列举了一些个人总结的导出功能设计时的一些常见规则,希望大家一起参与讨论分析,拙见如下:

  • 明确导出数据的价值分析
  • 明确导出数据的使用倾向
  • 明确导出数据的安全要求
  • 明确导出数据的权限控制
  • 明确需要导出的数据量级
  • 明确导出数据的方式方法
  • 明确到仓数据的频率频次
  • 明确导出数据的性能效率
  • 明确导出数据的限制方法
  • 明确导出功能的隔离及降级方案
  • 明确导出数据的格式样式
  • 明确导出数据的下载方案
  • 明确导出数据的错误监控

以上是个人想到的一些导出设计的简单规则,需要产研测一起沟通明确,还希望大家多提提意见,一起完善导出规则。

另外我们再从商家角度来考虑一下导出的目的,个人从询问业务及相关人员,发现商家导出数据有以下一些目的:

  • 存储归档方便查历史资料
  • 利用系统业务数据进行数据分析已指导商家业务工作或给领导汇报工作
  • 导出来使用表格工具等其他商家熟悉的工具进行查看,更便捷便利
  • 对导出的数据进行加工,并用于其他非京东系统的数据输入
  • 无意识的导出并无其他作用

以上是个人总结的一些商家导出的需求目的,其实针对商家导出来说可能还有很多其他目的,我们不能全部都能了解。但是可以积极与商家沟通理解商家的真实目的。

另外,我们需要去分析商家的诉求,挖掘商家需求背后的目的。假如有个服装行业的商家需要做服务订单业务数据、库存数据分析,是否我们可以利用数智侧的系统能力,为商家打造通用的数据分析能力呢,这样既可以避免导出数据手动分析的鸡肋,同时也提升了商家对京东物流的系统使用体验。

以上仅仅代表个人观点,一点愚见,还请大家批评指正!

欢迎大家一起探讨!

作者:京东物流 刘邓忠

来源:京东云开发者社区 自猿其说Tech 转载请注明来源

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

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

相关文章

linux 上flink单机安装详解

目录 一 准备安装包 二 解压 三 配置环境变量 四 验证是否部署成功 一 准备安装包 官网地址: Downloads | Apache Flink 百度网盘资源: 链接: https://pan.baidu.com/s/15aXmF3JLxnOlPiDxId637Q?pwdsqsx 提取码: sqsx 这里准备的版本是flink1.13…

led灯什么牌子的质量好?双十一必入五款护眼台灯推荐

LED灯作为一种新型的照明产品,具有节能、环保、寿命长等优点,受到越来越多的人们的青睐。但是,市面上的LED灯品牌琳琅满目,让人眼花缭乱。那么,LED灯什么牌子好呢?下面我们来推荐五大品牌。 1、色温 台灯的…

如何清除电脑缓存?简单几步,让你的电脑运行如飞!

电脑缓存是计算机性能的关键组成部分。它允许系统更快地访问已存储的数据,从而提高运行速度。然而,缓存也可能积累过多数据,导致性能下降。本文将探讨如何清除电脑缓存的三种方法,以帮助您维持系统的顶峰状态。 方法1:…

如何使用Guzzle库

Guzzle是一个PHP的HTTP客户端库,用于发送HTTP请求。以下是在PHP代码中使用Guzzle库的基本步骤: 安装Guzzle库:可以使用Composer在命令行中安装Guzzle库。 composer require guzzlehttp/guzzle 导入Guzzle库的命名空间:在PHP代码中…

易基因:ChIP-seq等揭示BRWD3调控KDM5活性以维持H3K4甲基化水平的表观机制|PNAS

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 组蛋白修饰对调控染色质结构和基因表达至关重要,组蛋白修饰失调可能导致疾病状态和癌症。染色质结合蛋白BRWD3(Bromodomain and WD repeat-containing protein 3&…

LeetCode--534. 游戏玩法分析 III

文章目录 1 题目描述1.1 测试用例 2 解题思路2.1 解法 1: group by join2.2 解法 2: sum() over() 1 题目描述 表:Activity ----------------------- | Column Name | Type | ----------------------- | player_id | int | | device_id | int …

远程IO技术驱动:物流分拣线的高效进化

随着工业4.0概念的深入人心,物流行业正在经历前所未有的变革。在这个过程中,物流企业必须积极拥抱新技术,通过提升效率和提供更好的服务来实现物流全链条的信息化、智能化,进而提高物流效率,降低物流成本,以…

Java 中的简单文本编辑器源代码

文章目录 前言简单文本编辑器 源代码基本信息关于Simple Text EditorJava 中的简单文本编辑器免费源代码特征应用程序屏幕截图源代码安装指南 前言 Java 中的简单文本编辑器是用 Java 编程语言编码的桌面应用程序。该项目使用一个简单的函数来制作文本编辑器应用程序。这个项目…

Hazelcast IMDG 概览

数新网络-让每个人享受数据的价值https://www.datacyber.com/ 一、简介 Hazelcast IMDG(in-memory data grid)是开源的、分布式高可用的、开箱即用的、云原生的内存数据网格,可用作开箱即用的数据和计算平台,或用作自己的云原生应…

17、SpringCloud -- natapp 内网穿透

目录 natapp什么是内网穿透?为什么要用natapp?安装、配置:下载隧道:配置启动:访问:natapp官网 natapp 什么是内网穿透? 为什么要用natapp? 安装、配置:

[毕设记录]@学术技能积累:zotero、readpaper 引用功能使用

文章目录 zoteroreadpaper 开题要在word里插入文献引用,zotero和readpaper在浏览器和word都有插件,比较好用 zotero Zotero 是一个免费、开源的参考文献管理软件,可以帮助用户收集、整理和引用文献。它支持多种操作系统,包括 Wind…

数字时代的文化探险,拓世AI文生图解锁千年古典画作宝库

中华古典绘画,既有磅礴的山河之气势,又有细腻至微的尘芥之美。这些画作,如同时间的印记,见证了华夏千年的文明与变迁。这里面的“中国十大传世名画”更是被誉为文明的瑰宝。可是,历史的风云变幻,使得一些名…

AI时代产品经理升级之道

1.产品管理新模式:让产品管理更高效、更快捷、更完美。 2.全流程解析:涵盖产品管理的不同应用场景,介绍从编写各种文档,到竞品分析与市场调研、需求管理、原型设计,再到产品发布与运营、维护与支持等关键环节。 3.实战…

游戏在小米设备上因自适应刷新率功能,帧率减半

1)游戏在小米设备上因自适应刷新率功能,帧率减半 2)Lua在计算时出现非法值,开启Debugger之后不再触发 3)如何在Unity中实现液体蔓延的效果 这是第357篇UWA技术知识分享的推送,精选了UWA社区的热门话题&…

发布一站式反电诈工具,合合信息商业大数据技术助力银行守护群众“钱袋子”

近期,电影《孤注一掷》在社交媒体上引起了广泛的讨论,社会各界对于电信网络诈骗案件的关注度日益提升。真实世界中的电诈涉及金额之大、团伙成员之多,往往比电影更甚。为此,国家不断加大对电信诈骗的打击力度,出台《反…

【RTOS学习】CubeMX对FreeRTOS的适配

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 经过前面的学习,现在我已经对FreeRTOS有了一个初步的认识,而且也可以使用F…

AI最终会是恐怖的制造者?原来OpenAI早已预言

原创 | 文 BFT机器人 不知道大家最近有没有关注美国电影,有一部关于人工智能反抗人类统治的名为《AI创始者》科幻电影即将在美国好莱坞上映,该电影讲述的是一个原本为人类服务的人工智能,有了自主意识,开始反抗人类的统治&#x…

2023年双11腾讯云优惠活动整理汇总

2023年双11购物狂欢节将至,腾讯云推出了11.11大促优惠活动,免费领取9999元代金券礼包;云服务器、云数据库、COS等上云必备产品,低至1.8折起;云产品助力企业和开发者轻松上云! 一、腾讯云双11活动地址 活动…

远程IO:实现立体车库高效运营的秘密武器

随着城市的发展,车辆无处停放的问题变得越来越突出。为了解决这个问题,立体车库应运而生。立体车库具有立体空间利用率高、存取车方便、安全可靠等优点,成为现代城市停车的重要解决方案。 立体车库控制系统介绍 在立体车库中,控制…

java解决修改图片尺寸,压缩图片后出现背景变黑,图片字体模糊问题

将以下数学公式的图片使用Hutool提供的图片工具类改变尺寸 代码如下: package com.jason.common.file.word;import cn.hutool.core.img.ImgUtil; import cn.hutool.core.io.FileUtil;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage;…