Tomcat应用服务器是目前最为流行的Servlet/JSP容器,目前大部分JSP程序运行在Tomcat上,具有大量的软件运行实例和环境。Tomcat采用纯JAVA开发,它运行在JVM(JAVA虚拟机之上),对内存使用要求较高,一旦内存超标则Tomcat会死掉或无响应。使用服务器监控软件对Tomcat进行统一监控是管理Tomcat的重要手段。在进行Tomcat监控时,要监控哪些内容呢?
首先最重要的是监控——JAVA虚拟机内存分配和使用情况
JAVA虚拟机在给Tomcat本身和用户的WEB应用分配内存时基于最大内存和已分配内存慢慢上升分配的方法分配内存,如果内存达到最大同时已分配内存已经用尽,则Tomcat将无法进行响应。这一部分的主要指标有:
Java可分配最大内存;
JAVA已分配内存;
当前实际使用内存;
JVM内存使用率。
如上图是在SUM服务器监控软件(点击打开软件介绍)的实际监控效果,我们看到该TOMCAT的最大可分配内存为14G,当前已经分配7G,已使用5G左右,内存使用率为71%。对于实际应用来说这一Tomcat需要大量内存,但目前运行良好。每一个指标均有长期的历史记录,以便分析。如下图:
其次是监控Tomcat线程池
Tomcat的线程池作为Tomcat处理请求的工作线程数量,一时用尽,则系统响无法进行新的请求。因此监控Tomcat的线程池并在达到一定的上限后进行短信报警或邮件报警,是非常必须的。线程数也是Tomcat同时处理请求的数,也真实的并发数。
如上图是在SUM服务器监控软件(点击打开软件介绍),我们看到当前繁忙线程数,这一监控指标,它是反应当前Tomcat特定的连接器正在并发处理的请求数。这个值一般不能达到或超过最大线程数的4/5,另一个指标也当前线程数,这个值是用于长期定位TOMCAT的最大并发数的重要指标,这个值随着负载的增减会一直上升,但它会升到一定时候就不会再增加,除非负载剧增。这个指标也是反应Tomcat长期负载和最大负载的重要指标之一。这个值也不可以接近最大线程 。