iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >java应用占用内存过高如何解决
  • 238
分享到

java应用占用内存过高如何解决

2023-06-06 16:06:04 238人浏览 薄情痞子
摘要

java应用占用内存过高如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、WEB应用程序

java应用占用内存过高如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、WEB应用程序、分布式系统和嵌入式系统应用程序。

查看

使用dstat和top查看内存使用最高的应用

使用dstat

java应用占用内存过高如何解决

查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况

使用top

java应用占用内存过高如何解决

可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程 一个应用占了28.7的内存

2.定位线程问题

使用ps查看16494的线程情况

命令:ps p 16494 -L -o pcpu,pmem,pid,tid,time,tname,cmd

java应用占用内存过高如何解决

看到16494这个pid的应用产生了很多线程

3.查看内存使用的堆栈

使用jstack查看

我们挑选了TID=17417的线程进行分析

在分析前需要将17417这个id转换为16进制,方便查找信息

[root@localhost ~]# printf "%x\n" 174174409

16进制为4409

将pid为16494的应用打印到日志

[root@localhost ~]# jstack -l 16494 > jstack.log

4.查看内存堆栈信息

[root@localhost ~]# vim jstack.log

在日志信息中查找刚刚转换的4409

java应用占用内存过高如何解决

可以看到这个线程状态为WaiTING

通过查看日志发现有大量的 waiting on condition

parking to wait for <0x0000000085dce510>

存在大量线程等待被唤醒,占用大量内存

5.代码优化

将相应日志发送给相应开发,优化线程

补充:分析java线程占用cpu或者内存高的代码

通过top查看占用cpu或者内存高的进程截图如下【备注输入大写P以cpu从大到小排序,大写M以内存大小排序】

java应用占用内存过高如何解决

通过对应的cpu找到PID也就是进程对应的pid,然后找到java进程106854这个进程id

java应用占用内存过高如何解决

通过命令top -Hp PID 例如top -Hp 106854

就可以列出该进程下的所有线程id

java应用占用内存过高如何解决

通过输出大写的P查看线程占用cpu最高的或者通过大写M查看内存占用最高的

然后找到109391这个线程id

使用命令printf “%x\n” 109391 输出对应的十六进制码,1ab4f这个码是为了过滤线程id查到对应的代码

java应用占用内存过高如何解决

使用命令jstack PID|grep 1ab4f 【备注PID是进程的id,1ab4f是这个进程下的一个线程占用最高的cpu十六进制码】

java应用占用内存过高如何解决

通过上面的输出发现kafka,所以会联想到,kafka一直监听消息,所以消耗cpu,正常现象

如果出现自己写的类,说明需要修改代码逻辑了

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: java应用占用内存过高如何解决

本文链接: https://www.lsjlt.com/news/247920.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java应用占用内存过高如何解决
    java应用占用内存过高如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序...
    99+
    2023-06-06
  • win10内存占用过高如何解决
    本篇内容介绍了“win10内存占用过高如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win10没多少进程占用过高解决方法:内存和cp...
    99+
    2023-07-01
  • win7 svchost占用内存过高如何解决
    遇到win7的svchost占用内存过高问题,可以尝试以下解决办法:1. 更新系统:确保系统已经安装了最新的补丁和更新,可以通过Wi...
    99+
    2023-09-05
    win7
  • 电脑内存占用过高如何解决
    本篇内容介绍了“电脑内存占用过高如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!解决方法:右击“任务栏”打开“任务管理器” 点击“内存...
    99+
    2023-07-01
  • windows svchost.exe内存占用过高如何解决
    本篇内容主要讲解“windows svchost.exe内存占用过高如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows svchost.exe...
    99+
    2023-02-22
    windows svchost.exe
  • win7物理内存占用过高如何解决
    这篇文章主要介绍“win7物理内存占用过高如何解决”,在日常操作中,相信很多人在win7物理内存占用过高如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win7物理内存占用过高如何解决”的疑惑有所帮助!...
    99+
    2023-07-01
  • 排查解决Java进程占用内存过高
    排查解决Java进程占用内存过高 1 在项目部署运行之前1 检查JVM参数设置2 检查代码逻辑3 使用内存分析工具4 检查线程5 调整应用程序的设计7 调整硬件资源 2 在项目部署运行之后 JVM图片来源 1 在项目部署运...
    99+
    2023-08-24
    JVM JVM内存模型 Java GC Java JVM Java 内存分析
  • win11内存占用高如何解决
    本文小编为大家详细介绍“win11内存占用高如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win11内存占用高如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win11内存占用高怎么解决:方法一:...
    99+
    2023-06-30
  • 解决VMware内存占用过高问题
    回顾多年的记录笔记方法,… 一、故障现象、 VMware虚拟机使用时间一段时间后,会出现开启VMware客户机内存占用过高问题。 二、故障分析 VMware cache缓存区目录占用太大空间。 2、由...
    99+
    2023-09-01
    ubuntu 服务器 运维
  • centos7内存占用过高怎么解决
    当CentOS 7的内存占用过高时,可以尝试以下方法来解决问题: 查看内存占用:使用命令free -h或top来查看当前系统的内...
    99+
    2023-10-23
    centos7
  • MySQL占用内存过大如何解决
    这篇文章主要介绍“MySQL占用内存过大如何解决”,在日常操作中,相信很多人在MySQL占用内存过大如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL占用内存过...
    99+
    2024-04-02
  • windows edge浏览器内存占用过高如何解决
    本篇内容主要讲解“windows edge浏览器内存占用过高如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows edge浏览器内存占用过高如何解决”吧!edge浏览器内存占用过...
    99+
    2023-07-01
  • Win11 mscorsvw.exe占用内存高如何解决
    要解决Win11 mscorsvw.exe占用高内存的问题,可以尝试以下几种方法:1. 等待:mscorsvw.exe是.NET F...
    99+
    2023-10-18
    Win11
  • win102004内存占用率过高怎么解决
    这篇文章主要介绍“win102004内存占用率过高怎么解决”,在日常操作中,相信很多人在win102004内存占用率过高怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win102004内存占用率过高怎...
    99+
    2023-07-01
  • Java进程内存占用过高,排查解决方法
    Java进程内存占用过高,排查解决方法 在Java应用程序开发过程中,我们经常会遇到Java进程占用内存过高的问题。这可能会导致系统性能下降、应用程序崩溃甚至无法启动。本文将介绍一些常见的排查和解决方...
    99+
    2023-10-20
    java 开发语言 Java
  • java内存使用率过高如何解决
    如果Java内存使用率过高,可以考虑以下几个解决方法: 调整Java虚拟机的内存参数:可以通过调整-Xmx和-Xms参数来增加或...
    99+
    2024-02-29
    java
  • windows资源管理器占用内存过高如何解决
    若Windows资源管理器占用内存过高,可以尝试以下几种解决方法:1. 重启资源管理器:打开任务管理器(按下Ctrl + Shift...
    99+
    2023-10-08
    windows
  • win7内存占用过高如何处理
    本文小编为大家详细介绍“win7内存占用过高如何处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7内存占用过高如何处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win7内存占用过高解决方法:方法一、...
    99+
    2023-07-01
  • NodeJs内存占用过高如何排查
    这篇文章给大家介绍NodeJs内存占用过高如何排查,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。问题起因最开始是因为一个定时功能上线后,线上的容器自动进行了扩容,由于 NodeJs 服务本身只有一些接口查询和 sock...
    99+
    2023-06-15
  • 电脑svchost占用内存过高怎么解决
    本篇内容主要讲解“电脑svchost占用内存过高怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑svchost占用内存过高怎么解决”吧!svchost占用内存过高解决方法:找到计算器,...
    99+
    2023-07-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作