返回顶部
首页 > 资讯 > 精选 >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

猜你喜欢
  • 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
  • Java进程内存占用过高,排查解决方法
    Java进程内存占用过高,排查解决方法 在Java应用程序开发过程中,我们经常会遇到Java进程占用内存过高的问题。这可能会导致系统性能下降、应用程序崩溃甚至无法启动。本文将介绍一些常见的排查和解决方...
    99+
    2023-10-20
    java 开发语言 Java
  • win102004内存占用率过高怎么解决
    这篇文章主要介绍“win102004内存占用率过高怎么解决”,在日常操作中,相信很多人在win102004内存占用率过高怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win102004内存占用率过高怎...
    99+
    2023-07-01
  • java内存使用率过高如何解决
    如果Java内存使用率过高,可以考虑以下几个解决方法: 调整Java虚拟机的内存参数:可以通过调整-Xmx和-Xms参数来增加或...
    99+
    2024-02-29
    java
  • windows资源管理器占用内存过高如何解决
    若Windows资源管理器占用内存过高,可以尝试以下几种解决方法:1. 重启资源管理器:打开任务管理器(按下Ctrl + Shift...
    99+
    2023-10-08
    windows
  • NodeJs内存占用过高如何排查
    这篇文章给大家介绍NodeJs内存占用过高如何排查,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。问题起因最开始是因为一个定时功能上线后,线上的容器自动进行了扩容,由于 NodeJs 服务本身只有一些接口查询和 sock...
    99+
    2023-06-15
  • win7内存占用过高如何处理
    本文小编为大家详细介绍“win7内存占用过高如何处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7内存占用过高如何处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win7内存占用过高解决方法:方法一、...
    99+
    2023-07-01
  • java内存占用高如何清理
    在Java中,内存占用高可能是因为程序中存在内存泄漏或者使用了大量的不必要的对象。以下是一些清理内存的方法: 使用垃圾回收器:J...
    99+
    2024-03-02
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作