windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长

 更新时间:2021年01月21日 09:23:59   作者:谭cyzz  
这篇文章主要介绍了windows java.exe内存暴涨解决、idea跑 java\ tomcat内存无限增长,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

最近突然遇到个问题:用 idea 跑 Tomcat 服务,不到30分钟 内存就吃完了。用任务管理器查看,发现 java.exe占了10G内存!!

查了各种方法

一、 idea Tomcat 配置

没用!!!

二、idea idea64.exe.vmoptions

安装目录下的 bin 下的 idea64.exe.vmoptions 配置,还是 C:\Users\Administrator\.IntelliJIdea2019.1\config 下的 idea64.exe.vmoptions 配置 改成如下

也没用!!

三、jvisualvm.exe 检查

然后打开 jdk/bin的 jvisualvm.exe 监控发现里面的 堆,栈等内存空间也是正常的

着实郁闷,感觉java线程的最大内存完全不由这些配置控制。

四、线程状态检查

后来根据这 篇文章做了排查,发现也不是程序引发的问题。

五、解决

最后是解决了,方法是

打开控制台,执行【 java -Xmx2048m -XX:MaxPermSize=1024m -version】

如此内存是控制住了。

【猜想】:如果没有给JVM 设置内存上限,他会一直跟操作系统申请内存。前面几步都没能设置到位,或者说设置不成功。

补充:java Thread卡死 项目内存一直增长

1.今天项目中出现了一个问题,虚拟内存、物理内存一直持续增长,项目需要每隔一小时重启一次。很是蛋疼。。怎么办呢? 很捉急啊。以下是解决方案,有相同问题的小伙伴,可以参考参考。

首先查看内存

1.top

查看pid 11112 (我的进程号)

2.top -H -p 11112

查看线程占用比例 得到线程11140 比较高

3. printf %x 11140

转换为16进制 2b84

4.jstack 11112 | grep 2b84 -A 30

jdk的bin目录下查看代码

报错:

"pool-4392-thread-1" prio=10 tid=0x00007fa4321be800 nid=0x2786 waiting on condition [0x00007fa2dc013000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fc0c7ba0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

出现以上问题是因为线程卡死问题。经过查看代码,是由于在循环中Thread.sleep()线程了,导致卡死。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • SpringBoot整合freemarker的讲解

    SpringBoot整合freemarker的讲解

    今天小编就为大家分享一篇关于SpringBoot整合freemarker的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 解决springboot+shiro+thymeleaf页面级元素的权限控制问题

    解决springboot+shiro+thymeleaf页面级元素的权限控制问题

    这篇文章主要介绍了解决springboot+shiro+thymeleaf页面级元素的权限控制问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 详解如何配置springboot跳转html页面

    详解如何配置springboot跳转html页面

    这篇文章主要介绍了详解如何配置springboot跳转html页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java中的3种输入方式实现解析

    Java中的3种输入方式实现解析

    这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java简单实现多线程及线程池实例详解

    java简单实现多线程及线程池实例详解

    这篇文章主要为大家详细介绍了java简单实现多线程,及java爬虫使用线程池实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • JAVA判断空值方法原理解析

    JAVA判断空值方法原理解析

    这篇文章主要介绍了JAVA判断空值方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • java判断字符串String是否为空问题浅析

    java判断字符串String是否为空问题浅析

    这篇文章主要介绍了java判断字符串String是否为空问题,有需要的朋友可以参考一下
    2014-01-01
  • Java LinkedHashMap深入分析源码

    Java LinkedHashMap深入分析源码

    大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的这一缺点往往会带来困扰,所以LinkedHashMap就闪亮登场了,这篇文章通过源码解析带你了解LinkedHashMap
    2022-11-11
  • Spring Boot中自动执行sql脚本的方法实例

    Spring Boot中自动执行sql脚本的方法实例

    在SpringBoot的架构中,DataSourceInitializer类可以在项目启动后初始化数据,我们可以通过自动执行自定义sql脚本初始化数据,下面这篇文章主要给大家介绍了关于Spring Boot中自动执行sql脚本的相关资料,需要的朋友可以参考下
    2022-01-01
  • java.text.DecimalFormat类十进制格式化

    java.text.DecimalFormat类十进制格式化

    这篇文章主要为大家详细介绍了java.text.DecimalFormat类十进制格式化的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03

最新评论