Tomcat占用JVM內(nèi)存數(shù)修改及監(jiān)控
在Tomcat設(shè)計(jì)之初,因?yàn)榭紤]到客戶(hù)的服務(wù)器性能不同,防止虛擬內(nèi)存不足,所以Tomcat默認(rèn)設(shè)置JVM允許使用內(nèi)存數(shù)為最小64M,***128M,但是在一些項(xiàng)目占用資源比較龐大,或者高并發(fā)量的項(xiàng)目中,很容易造成內(nèi)存不足而Tomcat沒(méi)有任何征兆就自動(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)榭紤]到客戶(hù)的服務(wù)器性能不同,防止虛擬內(nèi)存不足,所以Tomcat默認(rèn)設(shè)置JVM允許使用內(nèi)存數(shù)為最小64M,***128M,但是在一些項(xiàng)目占用資源比較龐大,或者高并發(fā)量的項(xiàng)目中,很容易造成內(nèi)存不足而Tomcat沒(méi)有任何征兆就自動(dòng)停止。
***的辦法是修改Tomcat對(duì)JVM內(nèi)存使用的限制。
方法有兩個(gè):
1,編輯%CATALINA_HOME%\bin下面的catalina.bat文件
在最上面***行前面寫(xiě)上
- 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)來(lái)設(shè)置的,因?yàn)檫@個(gè)JVM占用內(nèi)存數(shù)實(shí)際上是針對(duì)虛擬內(nèi)存來(lái)說(shuō),這個(gè)設(shè)置表示,無(wú)論系統(tǒng)怎么占用虛擬內(nèi)存,都要保證最小512M的虛擬內(nèi)存共給JVM使用,當(dāng)然,就算我JVM占用再大,也不會(huì)超過(guò)1024,來(lái)威脅系統(tǒng)的內(nèi)存使用。
2,在環(huán)境變量里面添加如下兩個(gè)值
加上Tomcat_OPTS,CATALINA_OPTS兩個(gè)屬性,如SETCATALINA_OPTS=-Xms512m-Xmx1024m;意義同上
但是如何查看JVM內(nèi)存使用多少呢?最簡(jiǎn)單的辦法就是打開(kāi)任務(wù)管理器–>進(jìn)程–>查看–>選擇列,選上虛擬內(nèi)存數(shù)->確定,就會(huì)看見(jiàn)虛擬內(nèi)存數(shù)了,這時(shí),你會(huì)看見(jiàn)虛擬內(nèi)存會(huì)有512~1024M的空間被占用,那么就是被你設(shè)定好的值所占用了,JVM的內(nèi)存使用,就會(huì)在這個(gè)被占用的范圍內(nèi)使用。
另外一個(gè)辦法就是寫(xiě)一個(gè)小腳本,命名為ram.jsp
代碼為
- <%
- RuntimeRuntimelRuntime=Runtime.getRuntime();
- out.println(”***BEGINMEMERYSTATISTICS***</BR>”);
- out.println(”FreeMomery:”+lRuntime.freeMemory()+”</BR>”);
- out.println(”MaxMomery:”+lRuntime.maxMemory()+”</BR>”);
- out.println(”TotalMomery:”+lRuntime.totalMemory()+”</BR>”);
- out.println(”AvailableProcessors:
- “+lRuntime.availableProcessors()+”</BR>”);
- out.println(”***ENDMEMERYSTATISTICS***”);
- %>
【編輯推薦】
- 使用Tomcat5輕松設(shè)置JVM內(nèi)存
- Tomcat配置JVM參數(shù)巧妙方法
- JVM基礎(chǔ):解析JVM分代垃圾回收策略
- JVM for Linux JIT診斷技術(shù)簡(jiǎn)介
- 巧解IBM JVM for Linux onPOWER性能調(diào)優(yōu)