資源描述:
《內(nèi)存溢出出現(xiàn)原因及解決方案》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、自從人類進(jìn)入商品經(jīng)濟(jì)社會以來,貿(mào)易即已成為人們?nèi)粘;顒拥闹饕糠?,并成為一國?jīng)濟(jì)增長的主動力。國際分工的深化、大量國際統(tǒng)一標(biāo)準(zhǔn)規(guī)則的建立內(nèi)存溢出出現(xiàn)原因及解決方案 篇一:內(nèi)存溢出解決方案 內(nèi)存溢出解決方案 篇二:內(nèi)存溢出的三種情況及系統(tǒng)配置解決方案 近經(jīng)常有人咨詢相關(guān)內(nèi)存溢出的問題,在生產(chǎn)環(huán)境中tomcat內(nèi)存設(shè)置不好很容易出現(xiàn)內(nèi)存溢出。造成內(nèi)存原因是不一樣的,當(dāng)然處理方式也不一樣。 這里根據(jù)平時(shí)遇到的情況和相關(guān)資料進(jìn)行一個(gè)總結(jié)。常見的一般會有下面三種情況: ?。篔avaheapspace :PermGens
2、pace ?。簎nabletocreatenewnativethread. Tomcat內(nèi)存溢出解決方案 對于前兩種情況,在應(yīng)用本身沒有內(nèi)存泄露的情況下可以用設(shè)置tomcatjvm參數(shù)來解決。(-Xms-Xmx-XX:PermSize-XX:MaxPermSize) 最后一種可能需要調(diào)整操作系統(tǒng)和tomcatjvm參數(shù)同時(shí)調(diào)整才能達(dá)到目的?! 〉谝环N:是堆溢出?! ≡贘VM中如果98%的時(shí)間是用于GC且可用的Heapsize不足2%的時(shí)候?qū)伋龃水惓P畔ⅰ! ]有內(nèi)存泄露的情況下,調(diào)整-Xms-Xmx參數(shù)可以解決。
3、隨著信息化和全球化的發(fā)展,國家及地區(qū)之間的貿(mào)易也已成為拉動一國經(jīng)濟(jì)的三駕馬車之一,甚至是三駕馬車之首,奧巴馬政府成立之日起自從人類進(jìn)入商品經(jīng)濟(jì)社會以來,貿(mào)易即已成為人們?nèi)粘;顒拥闹饕糠?,并成為一國?jīng)濟(jì)增長的主動力。國際分工的深化、大量國際統(tǒng)一標(biāo)準(zhǔn)規(guī)則的建立 -Xms:初始堆大小 -Xmx:最大堆大小 但堆的大小受下面三方面影響: 1.相關(guān)操作系統(tǒng)的數(shù)據(jù)模型(32-bt還是64-bit)限制;(32位系統(tǒng)下,一般限制在~2G;我在XXserver系統(tǒng)下(物理內(nèi)存:4G和6G,jdk:)測試1612M,64為操作系
4、統(tǒng)對內(nèi)存無限制。) 2.系統(tǒng)的可用虛擬內(nèi)存限制; 3.系統(tǒng)的可用物理內(nèi)存限制?! 《训拇笮】梢允褂胘ava-Xmx***Mversion命令來測試。支持的話會出現(xiàn)jdk的版本號,不支持會報(bào)錯(cuò)。-Xms-Xmx一般配置成一樣比較好比如setJAVA_OPTS=-Xms1024m-Xmx1024m 第二種:永久保存區(qū)域溢出 PermGenspace的全稱是PermanentGenerationspace,是指內(nèi)存的永久保存區(qū)域。這一部分用于存放Class和的信息,Class在被Load的時(shí)候被放入PermGenspa
5、ce區(qū)域,它和和存放Instance的Heap區(qū)域不同,GC(GarbageCollection)不會在主程序運(yùn)行期對PermGenspace進(jìn)行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現(xiàn)PermGenspace錯(cuò)誤。這種錯(cuò)誤常見在web服務(wù)器對JSP進(jìn)行pre隨著信息化和全球化的發(fā)展,國家及地區(qū)之間的貿(mào)易也已成為拉動一國經(jīng)濟(jì)的三駕馬車之一,甚至是三駕馬車之首,奧巴馬政府成立之日起自從人類進(jìn)入商品經(jīng)濟(jì)社會以來,貿(mào)易即已成為人們?nèi)粘;顒拥闹饕糠郑⒊蔀橐粐?jīng)濟(jì)增長的主動力。國際分工的深化、大量國際
6、統(tǒng)一標(biāo)準(zhǔn)規(guī)則的建立compile的時(shí)候。但目前的hibernate和spring項(xiàng)目中也很容易出現(xiàn)這樣的問題??赡苁怯捎谶@些框架會動態(tài)class,而且jvm的gc是不會清理PemGenspace的,導(dǎo)致內(nèi)存溢出?! ∵@一個(gè)一般是加大-XX:PermSize-XX:MaxPermSize來解決問題?! ?XX:PermSize永久保存區(qū)域初始大小 -XX:PermSize永久保存區(qū)域初始最大值 這一般結(jié)合第一條使用,比如setJAVA_OPTS=-Xms1024m-Xmx1024m-XX:PermSize=128M-X
7、X:PermSize=256M 有一點(diǎn)需要注意:java-Xmx***Mversion命令來測試的最大堆內(nèi)存是-Xmx與-XX:PermSize的和比如系統(tǒng)支持最大的jvm堆大小事,那-Xmx1024m-XX:PermSize=768M是無法運(yùn)行的?! 〉谌N:無法創(chuàng)建新的線程?! ∵@種現(xiàn)象比較少見,也比較奇怪,主要是和jvm與系統(tǒng)內(nèi)存的比例有關(guān)?! ∵@種怪事是因?yàn)镴VM已經(jīng)被系統(tǒng)分配了大量的內(nèi)存(比如),并且它至少要占用可用內(nèi)存的一半。有人發(fā)現(xiàn),在線程個(gè)數(shù)很多的情況下,你分配給JVM的內(nèi)存越多,那么,上述錯(cuò)誤發(fā)生的可
8、能性就越大。產(chǎn)生這種現(xiàn)象的原因如下(從這個(gè)blog中了解到原因:隨著信息化和全球化的發(fā)展,國家及地區(qū)之間的貿(mào)易也已成為拉動一國經(jīng)濟(jì)的三駕馬車之一,甚至是三駕馬車之首,奧巴馬政府成立之日起自從人類進(jìn)入商品經(jīng)濟(jì)社會以來,貿(mào)易即已成為人們?nèi)粘;顒拥闹饕糠?,并成為一國?jīng)濟(jì)增長的主動力。國際分工的深化、大量國際統(tǒng)一標(biāo)準(zhǔn)規(guī)則的