一、使用Tomcat自带的Status页进行监控
修改tomcat-users.xml(tomcat安装目录下conf文件夹内)
在tomcat-users中添加代码:
修改完后重启tomcat,打开localhost:8080进入主页面;点击Server Status 输入密码后进入Server Status页面
Status页面主要包括三部分信息:JVM、HTTP、jk
JVM(Java虚拟机):包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域
JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多个平台上不加修改的运行;JVM在执行字节码时,还是把字节码解释成具体平台上的机器指令执行。
Free memory:空闲内存大小 Total memory:总内存大小 Max memory:最大内存大小
HTTP:
Max threads: 最大线程数
Current thread count: 最近运行的线程数
Current thread busy: 正在运行的线程数
Keep alive sockets count: 0
Max processing time:最大CPU时间
Processing time: CPU消耗总时间
Request count: 请求总数
Error count: 错误的请求数
Bytes received: 接收字节数
Bytes sent: 0.00 MB:发送字节数
请求阶段:
P:正准备发送的请求;
S:请求正在服务器端处理
F:已经完成的请求
R:即将发送的请求
K:当前活动的请求
Jk:显示信息与http相同,jk是Apache连接tomcat的一个模块,支持集群和负载均衡
二、使用Java管理扩展监测工具Jconsole进行监控
Java根目录下的Jconsole文件,直接点击运行;可为Jconsole路径设置环境变量
C:Program FilesJavajdk1.8.0_121in
启动Jconsole程序的方式有两种:带参数的启动,不带参数的启动
不带参数的启动将弹出对话框:
带参数启动又分为监控本地进程和远程进程
本地监控的命令格式:Jconsole processID (processID指应用程序进程的ID,PID;windows系统可以在任务管理器查找正在运行的java实例的PID)
远程监控的命令格式:Jconsole 主机名 portNum(portNum是启动Java虚拟机时指定的JMX代理的端口号)
Jconsole 本身需消耗大量的系统资源,生产环境中不推荐在本地监视
java监控器控制台:
监控的内容主要包括:概述、内存监控、线程监控、类监控、VM摘要、MBean
1) 概述
2) 内存监控
内存监控信息主要提供了内存消耗和内存池的信息
内存消耗有两类:堆和非堆内存;这两种内存是Java虚拟机管理的两种内存,都是java虚拟机启动时创建的
堆内存:堆内存是运行时数据区域,java VM的所有类实例和数组分配内存,可能是固定或可变大小的堆
非堆内存:包括在所有线程和Java虚拟机内部处理或优化所需的共享的方法。他存储了类的结构、运行常量池、字段和方法数据以及方法和构造函数的代码,方法区在逻辑上是堆的一部分,看具体实现的方式。
3) 线程监控
线程数视图动态的显示了当前的活动线程数:当前活动线程数和峰值线程数
4) 类监控
5) VM摘要
6) MBean
三、使用LambdaProbe进行监控