vlambda博客
学习文章列表

查看TOMCAT内存使用

您可以用把下列代码放在一个JSP文件中,如写入memory.jsp,放到你的TOMCAT下的任何一应用中,就可以看到你的TOMCAT总大可使用多少内存,已经使用了多少.

<%--
Document : memory
Author : Administrator
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JVM memory</title>
</head>
<body>
<%
double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024);
double max = (Runtime.getRuntime().maxMemory()) / (1024.0 * 1024);
double free = (Runtime.getRuntime().freeMemory()) / (1024.0 * 1024);
out.println("Java 虚拟机试图使用的最大内存量(当前JVM的最大可用内存)maxMemory(): " + max + "MB<br/>");
out.println("Java 虚拟机中的内存总量(当前JVM占用的内存总数)totalMemory(): " + total + "MB<br/>");
out.println("Java 虚拟机中的空闲内存量(当前JVM空闲内存)freeMemory(): " + free + "MB<br/>");
out.println("因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,<br/>" +
"而JVM实际可用内存并不等于freeMemory(),而应该等于 maxMemory()-totalMemory()+freeMemory()。<br/>");
out.println("JVM实际可用内存: " + (max - total + free) + "MB<br/>");
out.println("jspcn");
%>
</body>

</html>


上面的例子基本可以满足性能调试使用,下面的比较详细,需要开发代码,暂时使用上面简单例子。


---------------------------------------------------------

同样也可以进入tomcat管理页面,查看内存使用情况,但是平常在生产环境都禁掉了管理员登录页面。

http://zhumeng8337797.blog.163.com/blog/static/10076891420129223928915/


1. Tomcat6中没有设置任何默认用户,因而需要手动往Tomcat6conf文件夹下的tomcat-users.xml文件中添加用户。

如:<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>

注:添加完需要重启Tomcat6

2. 访问http://localhost:8080/manager/status,输入上面添加的用户名和密码。

3. 然后在如下面的JVM下可以看到内存的使用情况。
JVM:Free memory: 2.50 MB Total memory: 15.53 MB Max memory: 63.56 MB

Free memory:当前可用的内存;

Total memory:当前已经分配的JVM内存;

Max memory:当前允许分配的最大JVM内存;

上周的题目有些简单,但是tomcat也需要我们研究一下,因为涉及的知识不多,但是将来这些都是部署时候非常有用的技术。

更详细信息请查看原文