42、Java服务内存OOM原因分析

1、出现问题的可能原因

对于应用来说内存分配太少

对象创建太多,又没有释放,造成内存泄漏严重,导致内存耗尽

申请太多的系统资源,系统资源耗尽。例如:不断创建线程,不断发起网络连接

2、如何定位问题(可直接对dump文件分析)

         确定是否时内存过小

         命令: jmap –heap PID

 

 

        查看对象消耗内存情况

        命令:jmap –histo:live PID | more   (执行该命令会强制执行一次fgc,自己判断是否可用)

        

        

      查看gc情况

      命令:jstat –gcutil PID 查看gc情况

      使用dump分析

      命令:jmap -dump:format=b,file=a.hprof pid       导出dump文件

      实例:jmap -dump:format=b,file=a.hprof 13888

 

      Sz a.hprof下载a.hprof到windows

 

      使用Memory Analyzer工具进行可视化分析

        查看哪些类占用资源过多,对应进行优化

 

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

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

相关文章

Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍

前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows、Mac OSX、Linux) 的应用程序开发框架(Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台。.Net Core也是微软在一开始…

DotNetty 跨平台的网络通信库

久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架。终于微软的Azure团队,使用C#实现的Netty的版本发布。不但使用了C#和.Net平台的技术特点,并且保留了Netty原来绝大部分的编程接口。让我们在使用…

26、临时表的创建和重复数据的处理

UPDATE student b SET b.sname dd WHERE b.id (SELECT a.id FROM student a WHERE a.id 3) Mysql中根据条件(表A中的字段)操作表A中的数据时是不可以的 所以借助临时表来删除/更新重复的数据,原理就是删除每组重复数据中除id值最大的其他…

1、java简介

关于java介绍也没什么好说的,在这里简单介绍一下,说起java,我第一想到的就是它的简单和强大,简单是简单易学,开发速度快;强大是其功能强大,各个领域都可使用,其代码一次编译可以处处…

C# 观察者模式 以及 delegate 和 event

观察者模式这里面综合了几本书的资料.需求有这么个项目: 需求是这样的:一个气象站, 有三个传感器(温度, 湿度, 气压), 有一个WeatherData对象, 它能从气象站获得这三个数据. 还有三种设备, 可以按要求展示气象站的最新数据.WeatherData的结构如下:有3个get方法, 分别获取最新的…

2、JAVA开发环境的搭建

上次说到java应用之所以做到跨平台,是因为其依赖于java虚拟机,java想要运行需要依赖于特定的运行环境,称为JRE,如果想要开发java应用,则需要用到开发工具包,也就是JDK,所以这里就要说一下这几者…

Serilog Tutorial

在过去的几年中,结构化日志已经大受欢迎。而Serilog是 .NET 中最著名的结构化日志类库 ,我们提供了这份的精简指南来帮助你快速了解并运用它。0. 内容设定目标认识Serilog事件和级别触发和收集结构化数据为过滤和关联添加事件标记大海捞针 [Finding needles in the …

使用DDD、事件风暴和Actor来设计反应式系统

领域驱动设计(domain-driven design,DDD)通常在微服务领域用于查找边界(限界上下文)。同样来自DDD的聚合(aggregate)对于定义持久化和一致性的范围来讲也是很重要的。 但是,并不是领…

站在巨人肩上的.NET Core 2.1

.NET Core 1.0自发布两年以来,得到了开发者群体相当高地认可。 下图来自Stack overflow survey 2018的统计:.NET Core已经成为前五的主流框架工具,现今借鉴了优秀的设计原则和开发体验可谓站在巨人肩上。这一切归功于.NET团队认识和总结了大量…

5、java中的数组

1、简介 数组是一种具有随机存取特性的数据结构,是内存上一段连续区域的表示,是实现顺序存储的基础,数组只能用于存储同一类型的数据。数组的长度在初始化时定义之后就不可更改,并且在初始化数组时必须指定数组的长度。 2、数组…

动态规划训练19、最短路 [Help Jimmy POJ - 1661 ]

Help Jimmy POJ - 1661 题意:大致是一个人从某个点开始下落,下落的速度是1m/s,然后在平台上的时候可以左右移动,移动的速度也是1m/s,但是这里有一个限制,就是说每次下落的距离不能超过一个给定的数值。问你…

【活动(北京)】Global Azure Bootcamp

活动议程活动内容08:30-08:50报到08:50-09:10活動开场Study4 - 陈科融(MVP)STB Chain Foundation - 劉海峰(MVP)MVP Program - Christina Liang(MVP CPM)09:10-10:00区块链让软件资产化成为现实刘海峰(MVP) - STBChain Foundation主席10:10-11:00基于Azure PaaS的网站应用刘元纶…

6、java中的排序算法

1、简介 排序是将元素按着指定关键字的大小递增或递减进行数据的排列,排序可以提高查找的效率 2、排序算法的分类 排序算法可大致分为四类七种,具体分类如下: 插入排序:直接插入排序、希尔排序 交换排序:冒泡排序、…

用.NET Core实现装饰模式和.NET Core的Stream简介

该文章综合了几本书的内容.某咖啡店项目的解决方案某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱.Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的. description变量在每个子类里面都需要设置(表示对咖啡的描述).每个子类实现cost方法, …

这个拖后腿的“in”

问题之源C# 7.2推出了全新的参数修饰符in,据说是能提升一定的性能,官方MSDN文档描述是:Add the in modifier to pass an argument by reference and declare your design intent to pass arguments by reference to avoid unnecessary copyin…

Surging 微服务框架使用入门

前言本文非 Surging 官方教程,只是自己学习的总结。如有哪里不对,还望指正。 我对 surging 的看法我目前所在的公司采用架构就是类似与Surging的RPC框架,在.NET 4.0框架上搭建Socket RPC,通过分组轮询的方式调度RPC,经…

RabbitMQ教程C#版 - 工作队列

先决条件本教程假定RabbitMQ已经安装,并运行在localhost标准端口(5672)。如果你使用不同的主机、端口或证书,则需要调整连接设置。从哪里获得帮助如果您在阅读本教程时遇到困难,可以通过邮件列表联系我们。1.工作队列&…

IdentityServer4实战 - 基于角色的权限控制及Claim详解

一.前言大家好,许久没有更新博客了,最近从重庆来到了成都,换了个工作环境,前面都比较忙没有什么时间,这次趁着清明假期有时间,又可以分享一些知识给大家。在QQ群里有许多人都问过IdentityServer4怎么用Role…

11、java中的I/O流(1)

我对于流的理解是这样的,计算机的本质本来就是对输入的数据进行操作,然后将结果输出的一种工具,数据在各个数据源节点之间进行流动,感觉流就是对这种状态的一种抽象,一个数据流表示的就是一系列数据序列,ja…

ASP.NET Core 集成测试

集成测试集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证…