windows java.exe內(nèi)存暴漲解決、idea跑java\ tomcat內(nèi)存無限增長
最近突然遇到個(gè)問題:用 idea 跑 Tomcat 服務(wù),不到30分鐘 內(nèi)存就吃完了。用任務(wù)管理器查看,發(fā)現(xiàn) java.exe占了10G內(nèi)存!!
查了各種方法
一、 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 監(jiān)控發(fā)現(xiàn)里面的 堆,棧等內(nèi)存空間也是正常的
著實(shí)郁悶,感覺java線程的最大內(nèi)存完全不由這些配置控制。
四、線程狀態(tài)檢查
后來根據(jù)這 篇文章做了排查,發(fā)現(xiàn)也不是程序引發(fā)的問題。
五、解決
最后是解決了,方法是
打開控制臺(tái),執(zhí)行【 java -Xmx2048m -XX:MaxPermSize=1024m -version】
如此內(nèi)存是控制住了。
【猜想】:如果沒有給JVM 設(shè)置內(nèi)存上限,他會(huì)一直跟操作系統(tǒng)申請內(nèi)存。前面幾步都沒能設(shè)置到位,或者說設(shè)置不成功。
補(bǔ)充:java Thread卡死 項(xiàng)目內(nèi)存一直增長
1.今天項(xiàng)目中出現(xiàn)了一個(gè)問題,虛擬內(nèi)存、物理內(nèi)存一直持續(xù)增長,項(xiàng)目需要每隔一小時(shí)重啟一次。很是蛋疼。。怎么辦呢? 很捉急啊。以下是解決方案,有相同問題的小伙伴,可以參考參考。
首先查看內(nèi)存
1.top
查看pid 11112 (我的進(jìn)程號(hào))
2.top -H -p 11112
查看線程占用比例 得到線程11140 比較高
3. printf %x 11140
轉(zhuǎn)換為16進(jìn)制 2b84
4.jstack 11112 | grep 2b84 -A 30
jdk的bin目錄下查看代碼
報(bào)錯(cuò):
"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)
出現(xiàn)以上問題是因?yàn)榫€程卡死問題。經(jīng)過查看代碼,是由于在循環(huán)中Thread.sleep()線程了,導(dǎo)致卡死。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
一文詳解Spring的Enablexxx注解使用實(shí)例
這篇文章主要為大家介紹了一文詳解Spring的Enablexxx注解使用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11SpringCloud整合OpenFeign實(shí)現(xiàn)微服務(wù)間的通信
微服務(wù)之間的通信?式,通常有兩種: RPC 和 HTTP,在SpringCloud中, 默認(rèn)是使?HTTP來進(jìn)?微服務(wù)的通信, 最常?的實(shí)現(xiàn)形式有兩種:RestTemplate和OpenFeign,本文給大家介紹了SpringCloud整合OpenFeign實(shí)現(xiàn)微服務(wù)間的通信,需要的朋友可以參考下2024-06-06Java同步關(guān)鍵字synchronize底層實(shí)現(xiàn)原理解析
synchronized關(guān)鍵字對大家來說并不陌生,當(dāng)我們遇到并發(fā)情況時(shí),優(yōu)先會(huì)想到用synchronized關(guān)鍵字去解決,synchronized確實(shí)能夠幫助我們?nèi)ソ鉀Q并發(fā)的問題,接下來通過本文給大家分享java synchronize底層實(shí)現(xiàn)原理,感興趣的朋友一起看看吧2021-08-08詳解Springboot應(yīng)用啟動(dòng)以及關(guān)閉時(shí)完成某些操作
這篇文章主要介紹了詳解Springboot應(yīng)用啟動(dòng)以及關(guān)閉時(shí)完成某些操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Java使用poi做加自定義注解實(shí)現(xiàn)對象與Excel相互轉(zhuǎn)換
這篇文章主要介紹了Java使用poi做加自定義注解實(shí)現(xiàn)對象與Excel相互轉(zhuǎn)換,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05java如何利用poi解析doc和docx中的數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java如何利用poi解析doc和docx中數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04SpringBoot后臺(tái)使用EasyExcel實(shí)現(xiàn)數(shù)據(jù)報(bào)表導(dǎo)出(含模板、樣式、美化)
在企業(yè)級(jí)系統(tǒng)中,數(shù)據(jù)導(dǎo)出 Excel 是非常常見的需求,本文基于實(shí)際項(xiàng)目經(jīng)驗(yàn),分享如何使用 EasyExcel 實(shí)現(xiàn)復(fù)雜報(bào)表導(dǎo)出,包含支持按天/按小時(shí)導(dǎo)出數(shù)據(jù)、支持多 Sheet、多段寫入等,下面小編給大家詳細(xì)說說,需要的朋友可以參考下2025-05-05SpringBoot解決Required?String?parameter?xxx?is?not?prese
這篇文章主要介紹了SpringBoot解決Required?String?parameter?xxx?is?not?present問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01