Tomcat占用JVM內存數修改及監控
在Tomcat設計之初,因為考慮到客戶的服務器性能不同,防止虛擬內存不足,所以Tomcat默認設置JVM允許使用內存數為最小64M,***128M,但是在一些項目占用資源比較龐大,或者高并發量的項目中,很容易造成內存不足而Tomcat沒有任何征兆就自動停止。
Tomcat占用JVM內存數修改方法及監控方法
Tomcat本身是一個很好的服務器容器,免費,功能強大,身后被很多強大的公司和組織默默的支持著,造就了一個可以和weblogic等收費容器抗衡的地位,但是Tomcat本身還是存在一些缺陷。
在Tomcat設計之初,因為考慮到客戶的服務器性能不同,防止虛擬內存不足,所以Tomcat默認設置JVM允許使用內存數為最小64M,***128M,但是在一些項目占用資源比較龐大,或者高并發量的項目中,很容易造成內存不足而Tomcat沒有任何征兆就自動停止。
***的辦法是修改Tomcat對JVM內存使用的限制。
方法有兩個:
1,編輯%CATALINA_HOME%\bin下面的catalina.bat文件
在最上面***行前面寫上
- setJAVA_OPTS=-Xms512m-Xmx1024m
其中-Xms表示JVM最小內存數,-Xmx表示***內存數
比如我這里都設置成最小512,***1024
當然,這個最小***并不是只能使用1024的意思,其實這個設置是對系統來設置的,因為這個JVM占用內存數實際上是針對虛擬內存來說,這個設置表示,無論系統怎么占用虛擬內存,都要保證最小512M的虛擬內存共給JVM使用,當然,就算我JVM占用再大,也不會超過1024,來威脅系統的內存使用。
2,在環境變量里面添加如下兩個值
加上Tomcat_OPTS,CATALINA_OPTS兩個屬性,如SETCATALINA_OPTS=-Xms512m-Xmx1024m;意義同上
但是如何查看JVM內存使用多少呢?最簡單的辦法就是打開任務管理器–>進程–>查看–>選擇列,選上虛擬內存數->確定,就會看見虛擬內存數了,這時,你會看見虛擬內存會有512~1024M的空間被占用,那么就是被你設定好的值所占用了,JVM的內存使用,就會在這個被占用的范圍內使用。
另外一個辦法就是寫一個小腳本,命名為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輕松設置JVM內存
- Tomcat配置JVM參數巧妙方法
- JVM基礎:解析JVM分代垃圾回收策略
- JVM for Linux JIT診斷技術簡介
- 巧解IBM JVM for Linux onPOWER性能調優