<内存暴涨解决、idea跑javatomcat内存⽆限增
长
最近突然遇到个问题:⽤ idea 跑 Tomcat 服务,不到30分钟内存就吃完了。⽤任务管理器查看,发现 占了10G内存!!negro音标
查了各种⽅法
汽车安全驾驶
⼀、 idea Tomcat 配置
六级报名网站没⽤
⼆、vmoptions
安装⽬录下的 bin 下的 vmoptions 配置,还是 C:\Urs\Administrator\.IntelliJIdea2019.1\config 下的 vmoptions 配置改成如下
也没⽤!!
三、 检查葡萄英语
然后打开 jdk/bin的 监控发现⾥⾯的堆,栈等内存空间也是正常的
着实郁闷,感觉java线程的最⼤内存完全不由这些配置控制。
四、线程状态检查
后来根据这做了排查,发现也不是程序引发的问题。
五、解决
最后是解决了,⽅法是
打开控制台,执⾏【 java -Xmx2048m -XX:MaxPermSize=1024m -version】
如此内存是控制住了。
【猜想】:如果没有给JVM 设置内存上限,他会⼀直跟操作系统申请内存。前⾯⼏步都没能设置到位,或者说设置不成功。
hrv补充:java Thread卡死项⽬内存⼀直增长
1.今天项⽬中出现了⼀个问题,虚拟内存、物理内存⼀直持续增长,项⽬需要每隔⼀⼩时重启⼀次。很是蛋疼。。怎么办呢?很捉急啊。以下是解决⽅案,有相同问题的⼩伙伴,可以参考参考。
⾸先查看内存
查看pid 11112 (我的进程号)
screwup
查看线程占⽤⽐例得到线程11140 ⽐较⾼
天时地利人和英文
3. printf %x 11140
转换为16进制 2b84
stickto4.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 urrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at urrent.locks.LockSupport.park(LockSupport.java:186)
at urrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at urrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at Task(ThreadPoolExecutor.java:1068)
at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at urrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)哈尔滨新东方学校
出现以上问题是因为线程卡死问题。经过查看代码,是由于在循环中Thread.sleep()线程了,导致卡死。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
howareyoudoing