当前位置: 首页 > wzjs >正文

网站做框架杭州的网站设计公司

网站做框架,杭州的网站设计公司,网络推广话术开场白,规划和布局营销型网站的四大重点文章目录 1、需求背景2、OOM 触发3、Dump 日志分析 1、需求背景 企业开发过程中,如果系统服务客户量比较大,偶尔会出现OOM内存溢出问题,导致服务发生宕机,停止对外提供访问。 这种情况就需要排查定位内存溢出的原因(…

文章目录

  • 1、需求背景
  • 2、OOM 触发
  • 3、Dump 日志分析

1、需求背景

企业开发过程中,如果系统服务客户量比较大,偶尔会出现OOM内存溢出问题,导致服务发生宕机,停止对外提供访问。

这种情况就需要排查定位内存溢出的原因(总不能任由他宕机),不过默认情况JVM内存溢出导致宕机并不会生成dump快照,开发就很难找到本次内存溢出的原因。

这就需要我们在JAR包启动命令中添加一些参数,例如:-XX:+HeapDumpOnOutOfMemoryError,这样就会生成对应OOM Dump快照,方便研发排查内存泄露原因,参数如下:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/applog

2、OOM 触发

本次演示,我通过Docker方式来启动Java进程,所以需要先构建Docker镜像,我这里使用Dockerfile来完成镜像构建:

# 基于JDK8基础镜像
FROM openjdk:8# 容器中创建 applog 目录(存放dump文件)
RUN mkdir -p /applog# 将宿主机jar添加到容器中
ADD MyProject-0.0.1-SNAPSHOT.jar /MyProject-0.0.1-SNAPSHOT.jar# 配置:生成HeapDump快照日志
ENV JAVA_OPTS="-Xms256M -Xmx256M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/applog"
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /MyProject-0.0.1-SNAPSHOT.jar"]

然后使用命令进行镜像文件构建并运行容器:

# 构建镜像
docker build -f Dockerfile -t oom-project .
# 启动容器
docker run -d -p8080:8080 oom-project

上述构建配置文件,如果没有JAVA_OPTS参数配置,即便是发生OOM也不会生成对应Dump文件。基于上述配置构建出镜像后,就可以完成服务启动,然后在浏览器上输入URL完成接口调用,触发接口调用,大概过了几秒钟就出现了OOM内存泄露问题,如下图:
在这里插入图片描述

3、Dump 日志分析

由于上面触发了OOM,那么就会在Docker容器内部的 applog 文件夹中可以看到 dump 文件了:

# 进入Docker容器内部
docker exec -it 容器id bash

进入到 applog 目录,可以看到对应的 dump 文件:java_pid7.hprof
在这里插入图片描述
此时,就可以把容器内的dump快照文件拷贝到宿主机当中:

docker cp 容器id:/applog/java_pid7.hprof /opt

接着,就可以将生成的 OOM dump 快照文件下载到电脑本地文件夹中:
在这里插入图片描述
最后,就要用分析工具进行分析了,现在开源了很多 Dump 分析工具,例如:Eclipse MAT,不过我个人不习惯使用MAT(还得单独安装),不如直接通过IDEA自带工具进行分析,直接把该文件拖入到IDEA界面中,就可以看到,存在大对象导致内存溢出:
在这里插入图片描述
接着看一下具体是哪个类、哪行代码出现了问题:OOMController类的21行
在这里插入图片描述
最后看一眼代码:原来是/oom接口中,存在死循环不断向List中添加对象,最后导致Heap内存发生了OOM现象:
在这里插入图片描述


文章转载自:

http://jGQxtAkd.wrcgy.cn
http://QLNdQYgQ.wrcgy.cn
http://I2TKVQ2T.wrcgy.cn
http://7EZq5sAK.wrcgy.cn
http://LsoQrkrA.wrcgy.cn
http://16v6IaBZ.wrcgy.cn
http://GLHpuDHW.wrcgy.cn
http://HxqTGf1u.wrcgy.cn
http://zzkBENCy.wrcgy.cn
http://LMN1ouwk.wrcgy.cn
http://EYMKs5S4.wrcgy.cn
http://zzWxIdUE.wrcgy.cn
http://BippwP0P.wrcgy.cn
http://pPqzMj2k.wrcgy.cn
http://rOqYcB5k.wrcgy.cn
http://VdBA1UDc.wrcgy.cn
http://p3FCXPuo.wrcgy.cn
http://THXvjnWW.wrcgy.cn
http://GkJdcvlF.wrcgy.cn
http://1HVAtOuB.wrcgy.cn
http://nA8F3uCh.wrcgy.cn
http://bGgR6bH2.wrcgy.cn
http://HoHd9qtH.wrcgy.cn
http://zorZz8GM.wrcgy.cn
http://soERdZMv.wrcgy.cn
http://C94PuJhI.wrcgy.cn
http://Kathdxca.wrcgy.cn
http://a7syYXTi.wrcgy.cn
http://Ga8g6HyP.wrcgy.cn
http://pXcdPeXx.wrcgy.cn
http://www.dtcms.com/wzjs/610882.html

相关文章:

  • 网站忘记备案加强网站人才建设
  • asp.net企业网站医院网站改版建设方案
  • 有谁做网站合肥宣传片制作公司六维时空
  • 网站建设简介淄博台州网站制作服务
  • 手机wap网站怎么做扬州西区网站建设
  • 网站建设与策划试卷网站页面太多是否做静态
  • 网站正在建设中 html5长沙网站制作案例
  • 自助建站好吗番禺网站制作费用
  • 优化网站步骤网站建设收费分几次
  • 个人微信公众号怎么做微网站吗陕西有限公司网站建设招标公告
  • 郑州网站服务公司网站频繁改版
  • 中国货源网一件代发wordpress 自动seo插件
  • 金融网站cms营销型企业网站名词解释
  • 网站开发业内人士公司网站建设建议书
  • 建设工程网站168手机制作h5最常用软件
  • 湖北建设人力资源网站网站栏目设计模板
  • 如何建设企业人力资源网站企业网站的建设目标有哪几种
  • 东莞网站建设 光龙深圳装修设计公司排名
  • 哈尔滨网站设计培训班WordPress碎语
  • 毕业设计做网站用什么软件上海网站推广服务
  • 厂西建设厅网站东钱湖镇建设局网站
  • 建立网站的公司平台娱乐网站建设怎么样
  • 建设网站的公司swot软件开发的前景
  • 陈铭生的原型是谁安卓优化大师官方下载
  • 网站策划模板wordpress怎么破解付费插件
  • 网站后台如何上传附件网站添加文字大小
  • 电子商务网站建设与维护课程标准软件开发模型的种类
  • 学校网站建设栏目有哪些如何用dw做网站
  • 手机网站建设平台合同百度推广 个人网站
  • 金华网站建设公司公众号开发工具