一、使用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 Files\Java\jdk1.8.0_121\bin
啟動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進行監控