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()线程了,导致卡死。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
SpringCloud整合OpenFeign实现微服务间的通信
微服务之间的通信⽅式,通常有两种: RPC 和 HTTP,在SpringCloud中, 默认是使⽤HTTP来进⾏微服务的通信, 最常⽤的实现形式有两种:RestTemplate和OpenFeign,本文给大家介绍了SpringCloud整合OpenFeign实现微服务间的通信,需要的朋友可以参考下2024-06-06
Java使用poi做加自定义注解实现对象与Excel相互转换
这篇文章主要介绍了Java使用poi做加自定义注解实现对象与Excel相互转换,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-05-05
SpringBoot后台使用EasyExcel实现数据报表导出(含模板、样式、美化)
在企业级系统中,数据导出 Excel 是非常常见的需求,本文基于实际项目经验,分享如何使用 EasyExcel 实现复杂报表导出,包含支持按天/按小时导出数据、支持多 Sheet、多段写入等,下面小编给大家详细说说,需要的朋友可以参考下2025-05-05
SpringBoot解决Required String parameter xxx is not prese
这篇文章主要介绍了SpringBoot解决Required String parameter xxx is not present问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-01-01


最新评论