1、首先配置JVM
JVM要放到NTFS卷中,在JVM路径下找到jmxremote.access及jmxremote.password.template两个文件。
将jmxremote.password.template复制一份为jmxremote.password,对运行用户可读,对普通用户不可读。
2、配置Tomcat启动参数
修改catalina.bat,增加下面一行
SET "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=8686 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
3、启动Tomcat
4、客户端程序JMXInfo.java
package com.neohope.jmx.test; import java.io.IOException; import java.lang.management.MemoryUsage; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Formatter; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.management.MBeanServerConnection; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.openmbean.CompositeDataSupport; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; public class JMXInfo { public static void main(String[] args) throws Exception { JMXConnector connector = null; try { // 获取JMX连接 String ip = "127.0.0.1"; String port = "8686"; JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + ip + ":" + port + "/jmxrmi"); Map<String, String[]> map = new HashMap<String, String[]>(); String[] credentials = new String[] { "controlRole", "R&D" }; map.put("jmx.remote.credentials", credentials); connector = JMXConnectorFactory.connect(serviceURL, map); MBeanServerConnection mbsc = connector.getMBeanServerConnection(); // 获取JVM信息 ObjectName runtimeObjName = new ObjectName("java.lang:type=Runtime"); System.out.println("厂商:" + (String) mbsc.getAttribute(runtimeObjName, "VmVendor")); System.out.println("程序:" + (String) mbsc.getAttribute(runtimeObjName, "VmName")); System.out.println("版本:" + (String) mbsc.getAttribute(runtimeObjName, "VmVersion")); // 获取JVM运行时间 Date starttime = new Date((Long) mbsc.getAttribute(runtimeObjName, "StartTime")); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("启动时间:" + df.format(starttime)); Long timespan = (Long) mbsc.getAttribute(runtimeObjName, "Uptime"); System.out.println("持续工作时间:" + JMXInfo.formatTimeSpan(timespan)); // 获取JVM内存信息 ObjectName heapObjName = new ObjectName("java.lang:type=Memory"); MemoryUsage heapMemoryUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(heapObjName, "HeapMemoryUsage")); long heapMaxMemory = heapMemoryUsage.getMax(); long heapCommitMemory = heapMemoryUsage.getCommitted(); long heapUsedMemory = heapMemoryUsage.getUsed(); System.out.println("heap:" + (double) heapUsedMemory * 100 / heapCommitMemory + "%"); MemoryUsage nonheapMemoryUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(heapObjName, "NonHeapMemoryUsage")); long nonHeapCommitMemory = nonheapMemoryUsage.getCommitted(); long nonHeapUsedMemory = heapMemoryUsage.getUsed(); System.out.println("nonheap:" + (double) nonHeapUsedMemory * 100 / nonHeapCommitMemory + "%"); ObjectName permObjName = new ObjectName("java.lang:type=MemoryPool,name=Perm Gen"); MemoryUsage permGenUsage = MemoryUsage.from((CompositeDataSupport) mbsc.getAttribute(permObjName, "Usage")); long permCommitted = permGenUsage.getCommitted(); long permUsed = heapMemoryUsage.getUsed(); System.out.println("perm gen:" + (double) permUsed * 100 / permCommitted + "%"); // All Domains for (int j = 0; j < mbsc.getDomains().length; j++) { System.out.println(mbsc.getDomains()[j]); } // All MBeans Set<ObjectInstance> MBeanset = mbsc.queryMBeans(null, null); System.out.println("MBeanset.size() : " + MBeanset.size()); Iterator<ObjectInstance> MBeansetIterator = MBeanset.iterator(); while (MBeansetIterator.hasNext()) { ObjectInstance objectInstance = (ObjectInstance) MBeansetIterator.next(); ObjectName objectName = objectInstance.getObjectName(); String canonicalName = objectName.getCanonicalName(); System.out.println("canonicalName : " + canonicalName); } // 全部线程池 ObjectName threadpoolObjName = new ObjectName("Catalina:type=ThreadPool,*"); Set<ObjectName> s2 = mbsc.queryNames(threadpoolObjName, null); for (ObjectName obj : s2) { System.out.println("端口名:" + obj.getKeyProperty("name")); ObjectName objname = new ObjectName(obj.getCanonicalName()); System.out.println("最大线程数:" + mbsc.getAttribute(objname, "maxThreads")); System.out.println("当前线程数:" + mbsc.getAttribute(objname, "currentThreadCount")); System.out.println("繁忙线程数:" + mbsc.getAttribute(objname, "currentThreadsBusy")); } //HTTP Thread Pool ObjectName threadPoolObjName = new ObjectName("Catalina:type=ThreadPool,*"); Set<ObjectName> threadPoolObjNames = mbsc.queryNames(threadPoolObjName, null); for (ObjectName obj : threadPoolObjNames) { if (obj.getKeyProperty("name").contains("http")) { ObjectName objname = new ObjectName(obj.getCanonicalName()); System.out.println("HTTP最大线程数:"+ mbsc.getAttribute(objname, "maxThreads").toString());// 最大线程数 System.out.println("HTTP当前线程数:"+ mbsc.getAttribute(objname, "currentThreadCount").toString());// 当前线程数 System.out.println("HTTP繁忙线程数:" + mbsc.getAttribute(objname, "currentThreadsBusy").toString());// 繁忙线程数 } } // 全部应用 ObjectName managerObjName = new ObjectName("Catalina:type=Manager,*"); Set<ObjectName> s = mbsc.queryNames(managerObjName, null); for (ObjectName obj : s) { System.out.println("应用名:" + obj.getKeyProperty("path")); ObjectName objname = new ObjectName(obj.getCanonicalName()); System.out.println("最大会话数:" + mbsc.getAttribute(objname, "maxActiveSessions")); System.out.println("会话数:" + mbsc.getAttribute(objname, "activeSessions")); System.out.println("活动会话数:" + mbsc.getAttribute(objname, "sessionCounter")); } //RequestProcessor ObjectName requestObjName = new ObjectName("Catalina:type=RequestProcessor,*"); Set<ObjectName> requestObjNameSet = mbsc.queryNames(requestObjName, null); Integer aliveSocketsCount = 0; Long maxProcessingTime = 0L; Long processingTime = 0L; Long requstCount = 0L; Long errorCount = 0L; BigDecimal bytesReceived = BigDecimal.ZERO; BigDecimal bytesSend = BigDecimal.ZERO; for (ObjectName obj : requestObjNameSet) { if (mbsc.getAttribute(obj, "stage").toString().trim().equals("1")) aliveSocketsCount++; long nowMaxProcessingTime = Long.parseLong(mbsc.getAttribute(obj, "maxTime").toString()); if (maxProcessingTime < nowMaxProcessingTime) maxProcessingTime = nowMaxProcessingTime; processingTime += Long.parseLong(mbsc.getAttribute(obj, "processingTime").toString()); requstCount += Long.parseLong(mbsc.getAttribute(obj, "requestCount").toString()); errorCount += Long.parseLong(mbsc.getAttribute(obj, "errorCount").toString()); bytesReceived = bytesReceived.add(new BigDecimal(mbsc.getAttribute(obj, "bytesReceived").toString())); bytesSend = bytesSend.add(new BigDecimal(mbsc.getAttribute(obj, "bytesSent").toString())); } System.out.println("活动sockets计数:"+ aliveSocketsCount.toString()); System.out.println("最大处理时间:"+ maxProcessingTime.toString()); processingTime = processingTime / 1000; System.out.println("总处理时间:"+ processingTime.toString()); System.out.println("请求总数:"+ requstCount.toString()); System.out.println("错误总数:"+ errorCount.toString()); System.out.println("接收字节数:"+ bytesReceived.divide(new BigDecimal(1024L * 1024)) .setScale(2, RoundingMode.HALF_UP).toPlainString()); System.out.println("发送字节数:"+ bytesSend.divide(new BigDecimal(1024L * 1024)).setScale(2, RoundingMode.HALF_UP).toPlainString()); } catch (Exception e) { e.printStackTrace(); } finally { if(connector!=null) { try { connector.close(); } catch (IOException e) { } } } } public static String formatTimeSpan(long span) { long minseconds = span % 1000; span = span / 1000; long seconds = span % 60; span = span / 60; long mins = span % 60; span = span / 60; long hours = span % 24; span = span / 24; long days = span; return (new Formatter()).format("%1$d天 %2$02d小时%3$02d分%4$02d秒%5$03d毫秒", days, hours, mins, seconds, minseconds) .toString(); } }
5.运行结果
厂商:Oracle Corporation 程序:Java HotSpot(TM) Client VM 版本:24.65-b04 启动时间:2016-06-21 20:57:37 持续工作时间:0天 00小时29分31秒018毫秒 heap:60.11998789417739% nonheap:54.523986450299915% perm gen:165.7018025716146% Users JMImplementation com.sun.management Catalina java.nio java.lang java.util.logging MBeanset.size() : 150 canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=HTMLManager canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=Manager canonicalName : java.lang:type=Memory canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=stock canonicalName : JMImplementation:type=MBeanServerDelegate canonicalName : Catalina:context=/host-manager,host=localhost,name=StandardContextValve,type=Valve canonicalName : Catalina:port=8080,type=Connector canonicalName : Catalina:context=/examples,host=localhost,name=foo/name1,resourcetype=Context,type=Environment canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter canonicalName : Catalina:context=/host-manager,host=localhost,type=WebappClassLoader canonicalName : java.nio:name=mapped,type=BufferPool canonicalName : java.lang:name=MarkSweepCompact,type=GarbageCollector canonicalName : Catalina:context=/manager,host=localhost,name=StandardContextValve,type=Valve canonicalName : Catalina:context=/examples,host=localhost,name=name3,resourcetype=Context,type=Environment canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=default canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Servlet,name=jsp canonicalName : Catalina:host=localhost,name=ErrorReportValve,type=Valve canonicalName : Catalina:context=/host-manager,host=localhost,type=Cache canonicalName : java.lang:name=Tenured Gen,type=MemoryPool canonicalName : Catalina:context=/manager,host=localhost,name=BasicAuthenticator,type=Valve canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter canonicalName : Catalina:type=Engine canonicalName : Catalina:context=/,host=localhost,type=Manager canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=JMXProxy canonicalName : Catalina:context=/docs,host=localhost,type=WebappClassLoader canonicalName : java.lang:name=Code Cache,type=MemoryPool canonicalName : java.util.logging:type=Logging canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,name=jsp,type=JspMonitor canonicalName : Catalina:realmPath=/realm0/realm0,type=Realm canonicalName : Catalina:name=StandardEngineValve,type=Valve canonicalName : Catalina:port=8009,type=ProtocolHandler canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=RequestParamExample canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/ canonicalName : Catalina:context=/manager,host=localhost,type=Manager canonicalName : Catalina:context=/host-manager,host=localhost,name=BasicAuthenticator,type=Valve canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Filter,name=Set Character Encoding canonicalName : Catalina:context=/,host=localhost,type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Filter,name=Request Dumper Filter canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=ServletToJsp canonicalName : Catalina:name=HttpRequest1,type=RequestProcessor,worker="http-apr-8080" canonicalName : java.lang:type=Compilation canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Filter,name=SetCharacterEncoding canonicalName : java.lang:name=Survivor Space,type=MemoryPool canonicalName : Catalina:port=8080,type=ProtocolHandler canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=ChatServlet canonicalName : Catalina:context=/examples,host=localhost,type=WebappClassLoader canonicalName : Catalina:context=/examples,host=localhost,name=foo/bar/name2,resourcetype=Context,type=Environment canonicalName : Catalina:type=StringCache canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/docs,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter canonicalName : java.lang:type=Threading canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=Status canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/manager canonicalName : Catalina:host=localhost,name=StandardHostValve,type=Valve canonicalName : Users:database=UserDatabase,rolename=manager-gui,type=Role canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=default canonicalName : java.lang:name=Perm Gen,type=MemoryPool canonicalName : Catalina:port=8009,type=Mapper canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=wsEchoStream canonicalName : Catalina:context=/docs,host=localhost,type=Loader canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=jsp canonicalName : Catalina:context=/examples,host=localhost,name=FormAuthenticator,type=Valve canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=wsSnake canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Servlet,name=jsp canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Servlet,name=HostManager canonicalName : Catalina:name="http-apr-8080",type=GlobalRequestProcessor canonicalName : Catalina:context=/docs,host=localhost,type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=jsp canonicalName : java.lang:name=Perm Gen [shared-rw],type=MemoryPool canonicalName : Catalina:context=/,host=localhost,type=Cache canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=wsChat canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=CompressionFilterTestServlet canonicalName : java.lang:name=CodeCacheManager,type=MemoryManager canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Servlet,name=HTMLHostManager canonicalName : Catalina:host=localhost,type=Host canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/docs,j2eeType=Servlet,name=jsp canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=HelloWorldExample canonicalName : Catalina:name=HttpRequest2,type=RequestProcessor,worker="http-apr-8080" canonicalName : Catalina:name="ajp-apr-8009",type=GlobalRequestProcessor canonicalName : java.lang:type=Runtime canonicalName : java.nio:name=direct,type=BufferPool canonicalName : java.lang:name=Copy,type=GarbageCollector canonicalName : Catalina:name=HttpRequest3,type=RequestProcessor,worker="http-apr-8080" canonicalName : Catalina:context=/host-manager,host=localhost,type=Manager canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,name=jsp,type=JspMonitor canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,name=jsp,type=JspMonitor canonicalName : Catalina:host=localhost,name=AccessLogValve,type=Valve canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/examples canonicalName : Catalina:name="ajp-apr-8009",type=ThreadPool canonicalName : Catalina:type=Service canonicalName : com.sun.management:type=HotSpotDiagnostic canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/,j2eeType=Servlet,name=default canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Filter,name=Tomcat WebSocket (JSR356) Filter canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/docs,j2eeType=Servlet,name=default canonicalName : Catalina:context=/,host=localhost,type=WebappClassLoader canonicalName : java.lang:type=OperatingSystem canonicalName : Catalina:context=/examples,host=localhost,name=StandardContextValve,type=Valve canonicalName : Catalina:type=Server canonicalName : Catalina:port=8009,type=Connector canonicalName : Catalina:name="http-apr-8080",type=ThreadPool canonicalName : Catalina:context=/,host=localhost,name=StandardContextValve,type=Valve canonicalName : Catalina:class=org.apache.catalina.UserDatabase,name="UserDatabase",resourcetype=Global,type=Resource canonicalName : Catalina:context=/manager,host=localhost,type=WebappClassLoader canonicalName : Catalina:context=/examples,host=localhost,type=Manager canonicalName : Catalina:context=/examples,host=localhost,type=Cache canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/host-manager canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/docs canonicalName : Users:database=UserDatabase,type=UserDatabase canonicalName : Catalina:context=/examples,host=localhost,name=foo/name4,resourcetype=Context,type=Environment canonicalName : Catalina:context=/docs,host=localhost,name=StandardContextValve,type=Valve canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Filter,name=Compression Filter canonicalName : Catalina:type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=SessionExample canonicalName : Catalina:context=/,host=localhost,type=Loader canonicalName : Catalina:name=common,type=ServerClassLoader canonicalName : Catalina:context=/examples,host=localhost,type=Loader canonicalName : Catalina:context=/manager,host=localhost,type=Cache canonicalName : Catalina:context=/docs,host=localhost,type=Cache canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Filter,name=CSRF canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=CookieExample canonicalName : Users:database=UserDatabase,type=User,username="tomcat" canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Filter,name=SetCharacterEncoding canonicalName : Catalina:host=localhost,type=Deployer canonicalName : Catalina:type=MBeanFactory canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=RequestInfoExample canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Filter,name=Timing filter canonicalName : Catalina:context=/examples,host=localhost,type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,j2eeType=Servlet,name=default canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Filter,name=CSRF canonicalName : Catalina:context=/manager,host=localhost,type=Loader canonicalName : Users:database=UserDatabase,type=User,username="admin" canonicalName : Catalina:context=/docs,host=localhost,type=Manager canonicalName : java.lang:name=Eden Space,type=MemoryPool canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=RequestHeaderExample canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/docs,name=jsp,type=JspMonitor canonicalName : java.lang:name=Perm Gen [shared-ro],type=MemoryPool canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/host-manager,name=jsp,type=JspMonitor canonicalName : Catalina:context=/host-manager,host=localhost,type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=async2 canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=async3 canonicalName : Catalina:context=/examples,host=localhost,name=minExemptions,resourcetype=Context,type=Environment canonicalName : Catalina:context=/manager,host=localhost,type=NamingResources canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=async0 canonicalName : java.lang:type=ClassLoading canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=async1 canonicalName : Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=wsEchoMessage canonicalName : Catalina:realmPath=/realm0,type=Realm canonicalName : Catalina:context=/host-manager,host=localhost,type=Loader canonicalName : Users:database=UserDatabase,rolename=tomcat,type=Role canonicalName : Catalina:port=8080,type=Mapper 端口名:"ajp-apr-8009" 最大线程数:200 当前线程数:0 繁忙线程数:0 端口名:"http-apr-8080" 最大线程数:200 当前线程数:10 繁忙线程数:0 HTTP最大线程数:200 HTTP当前线程数:10 HTTP繁忙线程数:0 应用名:null 最大会话数:-1 会话数:0 活动会话数:0 应用名:null 最大会话数:-1 会话数:0 活动会话数:0 应用名:null 最大会话数:-1 会话数:0 活动会话数:0 应用名:null 最大会话数:-1 会话数:0 活动会话数:0 应用名:null 最大会话数:-1 会话数:0 活动会话数:0 活动sockets计数:0 最大处理时间:176 总处理时间:0 请求总数:9 错误总数:0 接收字节数:0.00 发送字节数:0.07