把下面的jvm.jsp放到项目里就能在前台访问这个jsp来查看web后台的jvm内存使用情况
jvm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.lang.management.*"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JVM Memory Monitor</title>
</head>
<body>
<table border="0" width="100%">
<tr>
<td colspan="2" align="center"><h3>Memory MXBean</h3></td>
</tr>
<tr>
<td width="200">Heap Memory Usage</td>
<td><%=ManagementFactory.getMemoryMXBean()
.getHeapMemoryUsage()%>
</td>
</tr>
<tr>
<td>Non-Heap Memory Usage</td>
<td><%=ManagementFactory.getMemoryMXBean()
.getNonHeapMemoryUsage()%></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2" align="center"><h3>Memory Pool MXBeans</h3></td>
</tr>
<%
Iterator<?> iter = ManagementFactory.getMemoryPoolMXBeans().iterator();
while (iter.hasNext()) {
MemoryPoolMXBean item = (MemoryPoolMXBean) iter.next();
%>
<tr>
<td colspan="2">
<table border="0" width="100%" style="border: 1px #98AAB1 solid;">
<tr>
<td colspan="2" align="center"><b><%=item.getName()%></b></td>
</tr>
<tr>
<td width="200">Type</td>
<td><%=item.getType()%></td>
</tr>
<tr>
<td>Usage</td>
<td><%=item.getUsage()%></td>
</tr>
<tr>
<td>Peak Usage</td>
<td><%=item.getPeakUsage()%></td>
</tr>
<tr>
<td>Collection Usage</td>
<td><%=item.getCollectionUsage()%></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<%
}
%>
</table>
</body>
</html>
把上面内容保存为jvm.jsp放到web项目的
前台访问这个jsp展示jvm各分区的使用情况,主要看老年代(Old Gen)的used(使用)是否接近了max(最大内存)