Tomcat占用JVM內(nèi)存數(shù)修改及監(jiān)控的方法是什么呢,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
目前成都創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、金華網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
在Tomcat設(shè)計(jì)之初,因?yàn)榭紤]到客戶的服務(wù)器性能不同,防止虛擬內(nèi)存不足,所以Tomcat默認(rèn)設(shè)置JVM允許使用內(nèi)存數(shù)為最小64M,***128M,但是在一些項(xiàng)目占用資源比較龐大,或者高并發(fā)量的項(xiàng)目中,很容易造成內(nèi)存不足而Tomcat沒有任何征兆就自動(dòng)停止。
Tomcat占用JVM內(nèi)存數(shù)修改方法及監(jiān)控方法
Tomcat本身是一個(gè)很好的服務(wù)器容器,免費(fèi),功能強(qiáng)大,身后被很多強(qiáng)大的公司和組織默默的支持著,造就了一個(gè)可以和weblogic等收費(fèi)容器抗衡的地位,但是Tomcat本身還是存在一些缺陷。
在Tomcat設(shè)計(jì)之初,因?yàn)榭紤]到客戶的服務(wù)器性能不同,防止虛擬內(nèi)存不足,所以Tomcat默認(rèn)設(shè)置JVM允許使用內(nèi)存數(shù)為最小64M,***128M,但是在一些項(xiàng)目占用資源比較龐大,或者高并發(fā)量的項(xiàng)目中,很容易造成內(nèi)存不足而Tomcat沒有任何征兆就自動(dòng)停止。
***的辦法是修改Tomcat對(duì)JVM內(nèi)存使用的限制。
方法有兩個(gè):
1,編輯%CATALINA_HOME%\bin下面的catalina.bat文件
在最上面***行前面寫上
setJAVA_OPTS=-Xms512m-Xmx1024m
其中-Xms表示JVM最小內(nèi)存數(shù),-Xmx表示***內(nèi)存數(shù)
比如我這里都設(shè)置成最小512,***1024
當(dāng)然,這個(gè)最小***并不是只能使用1024的意思,其實(shí)這個(gè)設(shè)置是對(duì)系統(tǒng)來設(shè)置的,因?yàn)檫@個(gè)JVM占用內(nèi)存數(shù)實(shí)際上是針對(duì)虛擬內(nèi)存來說,這個(gè)設(shè)置表示,無論系統(tǒng)怎么占用虛擬內(nèi)存,都要保證最小512M的虛擬內(nèi)存共給JVM使用,當(dāng)然,就算我JVM占用再大,也不會(huì)超過1024,來威脅系統(tǒng)的內(nèi)存使用。
2,在環(huán)境變量里面添加如下兩個(gè)值
加上Tomcat_OPTS,CATALINA_OPTS兩個(gè)屬性,如SETCATALINA_OPTS=-Xms512m-Xmx1024m;意義同上
但是如何查看JVM內(nèi)存使用多少呢?最簡單的辦法就是打開任務(wù)管理器–>進(jìn)程–>查看–>選擇列,選上虛擬內(nèi)存數(shù)->確定,就會(huì)看見虛擬內(nèi)存數(shù)了,這時(shí),你會(huì)看見虛擬內(nèi)存會(huì)有512~1024M的空間被占用,那么就是被你設(shè)定好的值所占用了,JVM的內(nèi)存使用,就會(huì)在這個(gè)被占用的范圍內(nèi)使用。
另外一個(gè)辦法就是寫一個(gè)小腳本,命名為ram.jsp
代碼為
<% RuntimeRuntimelRuntime=Runtime.getRuntime(); out.println(”***BEGINMEMERYSTATISTICS***”); out.println(”FreeMomery:”+lRuntime.freeMemory()+””); out.println(”MaxMomery:”+lRuntime.maxMemory()+””); out.println(”TotalMomery:”+lRuntime.totalMemory()+””); out.println(”AvailableProcessors:“+lRuntime.availableProcessors()+””); out.println(”***ENDMEMERYSTATISTICS***”); %>
看完上述內(nèi)容,你們掌握Tomcat占用JVM內(nèi)存數(shù)修改及監(jiān)控的方法是什么呢的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!