JConsole 在 Linux 上的使用

JConsole 在 Linux 上的使用指南

1. 啟動 JConsole 遠程監控 Linux 服務器上的 JVM 進程

1.1 修改 JMX 配置,允許遠程訪問

Linux 服務器 啟動 Java 應用時,需要加上 -Djava.rmi.server.hostname=<服務器IP>,完整的啟動參數如下:

java -Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=9010 \-Dcom.sun.management.jmxremote.rmi.port=9010 \-Dcom.sun.management.jmxremote.authenticate=false \-Dcom.sun.management.jmxremote.ssl=false \-Djava.rmi.server.hostname=你的服務器IP \-jar your-app.jar

參數說明:

  • -Djava.rmi.server.hostname=你的服務器IP:指定 JMX 監聽的 IP 地址,必須是服務器的外網/內網 IP,否則無法遠程連接。
  • -Dcom.sun.management.jmxremote.rmi.port=9010:顯式指定 RMI 端口,避免 RMI 端口隨機化。

1.2 允許防火墻放行端口

如果你的服務器有 防火墻,需要放行 9010 端口:

# Ubuntu/Debian
sudo ufw allow 9010# CentOS
sudo firewall-cmd --add-port=9010/tcp --permanent
sudo firewall-cmd --reload

1.3 在本地 Windows/Mac 連接

本地電腦(Windows/Mac) 上運行:

jconsole 你的服務器IP:9010

如果 JMX 正常工作,你會看到 Java 進程的監控界面。

1.4 使用 SSH 端口轉發(更安全)

如果你不想直接暴露 9010 端口,可以使用 SSH 端口轉發

ssh -L 9010:localhost:9010 user@你的服務器IP

然后在本地運行:

jconsole localhost:9010

這樣,遠程服務器的 9010 端口被映射到本地,避免安全風險。


最后結果如下:
在這里插入圖片描述

2. JConsole 監控的 JVM 指標和圖表

JConsole 連接 Java 進程后,會展示 JVM 運行狀態的多個圖表和指標,主要包括以下幾個部分:

2.1 概述(Overview)

  • CPU 使用率(折線圖)
  • 線程(Threads) 數量變化
  • 堆內存(Heap Memory Usage)(折線圖)
  • 類加載(Classes) 統計

2.2 內存(Memory)

  • 堆(Heap)
    • Eden Space(伊甸區):新對象存放,GC 頻繁。
    • Survivor Space(幸存者區):存活的對象從 Eden 復制到這里。
    • Old Gen(老年代):長期存活的對象存放區域。
  • 非堆(Non-Heap)
    • Metaspace(元空間):存放類元數據。
    • Code Cache(代碼緩存區):存儲 JIT 編譯后的本地代碼。

在這里插入圖片描述

2.3 線程(Threads)

  • 線程狀態統計
  • 線程堆棧(Thread Dump)

在這里插入圖片描述

2.4 GC(Garbage Collection)

  • GC 次數和耗時(折線圖)
    • Minor GC(年輕代 GC)
    • Major GC / Full GC(老年代 GC)

3. JDK 11 的 JVM 內存結構

3.1 堆(Heap)

  • 年輕代(Young Gen)
    • Eden 區:新對象存放,觸發 Minor GC。
    • Survivor 區(S0/S1):存活對象從 Eden 復制到 Survivor 區。
  • 老年代(Old Gen)
    • 存放長期存活的對象,觸發 Full GC。

3.2 非堆(Non-Heap)

  • Metaspace(元空間):JDK 8 移除了永久代(PermGen),改用 Metaspace 存放類元數據。
  • Code Cache(代碼緩存區):存放 JIT 編譯后的機器碼。

3.3 線程棧(Thread Stack)

  • 棧幀(Stack Frame):存放方法調用的局部變量、操作數棧等。
  • 本地方法棧(Native Stack):存放 JNI 方法。

3.4 直接內存(Direct Memory)

  • ByteBuffer.allocateDirect() 申請,避免堆內存復制,提高 IO 性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72172.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72172.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72172.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

個人記錄,Unity資源解壓和管理插件

就是經典的兩個AssetStudio 和 Ripper 沒有什么干貨&#xff0c;就是記錄一下&#xff0c;內容沒有很詳細 AssetStudio 說錯了&#xff0c;AssetStudio比較出名&#xff08;曾經&#xff09;&#xff0c;但好像墮落了 是&#xff0c;AssetBundlExtractor 這個工具有個好處就…

編譯skia

1.準備工具 (1)vs2019,到微軟官方下載下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux (2)ninja,下載地址:Releases ninja-build/ninja GitHub (3)gn,下載地址:https://chrome-infra-packages.appspot.com/p/gn/gn/windows-amd64 (4)skia,下載地址:git …

vue 知識點整理

1.data為什么是一個函數而不是對象 維度對象形式函數形式數據隔離性所有實例共享同一對象&#xff0c;導致數據污染每個實例擁有獨立數據副本復用安全性不適用于可復用組件支持組件安全復用語言機制引用傳遞引發副作用函數返回值實現作用域隔離&#xff08;閉包&#xff09;框…

DeepSeek-Open WebUI部署

1.DeepSeek部署-Win版本 2.DeepSeek部署-Linux版本 3.DeepSeek部署-一鍵部署(Linux版本) 4.DeepSeek部署-進階版本(LinuxGPU) 5.DeepSeek部署-基于vLLM部署 前面部署了vLLM版本以后&#xff0c;訪問它比較麻煩。如何才能更好的實現訪問呢&#xff0c;這個就是我們今天要講的…

(vue)elementUi中el-upload上傳附件之后 點擊附件可下載

(vue)elementUi中el-upload上傳附件之后 點擊附件可下載 handlePreview(file) {console.log(file)const fileUrl https://.../zzy/ file.urlconst a document.createElement(a)a.href fileUrla.download file.namea.style.display none// a.setAttribute(download, file.…

你認為 Java 的優勢是什么?

你認為 Java 的優勢是什么? 回答重點 我覺得可以從跨平臺、垃圾回收、生態、面向對象四個方面來闡述。 跨平臺 首先 Java 是跨平臺的,不同平臺執行的機器碼是不一樣的,而 Java 因為加了一層中間層 JVM,所以可以做到一次編寫多平臺(如 Windows、Linux、macOS)運行,即…

SpringBoot——Maven篇

Spring Boot 是一個用于快速開發基于 Spring 框架的應用程序的工具。它具有許多特性&#xff0c;其中一些重要的特性包括&#xff1a; 1. 自動配置&#xff1a;Spring Boot 提供了自動配置的機制&#xff0c;可以根據應用程序的依賴和環境自動配置應用程序的各種組件&#xff…

搭建基于chatgpt的問答系統

一、語言模型&#xff0c;提問范式與 Token 1.語言模型 大語言模型&#xff08;LLM&#xff09;是通過預測下一個詞的監督學習方式進行訓練的&#xff0c;通過預測下一個詞為訓練目標的方法使得語言模型獲得強大的語言生成能力。 a.基礎語言模型 &#xff08;Base LLM&…

leetcode0056. 合并區間 - medium

1 題目&#xff1a;合并區間 官方難度 - 中等 以數組 intervals 表示若干個區間的集合&#xff0c;其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間&#xff0c;并返回 一個不重疊的區間數組&#xff0c;該數組需恰好覆蓋輸入中的所有區間 。 示例 1…

系統開發資源

一、前端篇 1.1 菜鳥CSS教程 1.2 HTML/CSS/JS 在線工具 二、后端篇 三、其他篇 3.1 菜鳥官網 3.2 黑馬程序員學習路線 3.3 根據地區獲取經緯度

計算機視覺cv2入門之圖像的讀取,顯示,與保存

在計算機視覺領域&#xff0c;Python的cv2庫是一個不可或缺的工具&#xff0c;它提供了豐富的圖像處理功能。作為OpenCV的Python接口&#xff0c;cv2使得圖像處理的實現變得簡單而高效。 示例圖片 目錄 opencv獲取方式 圖像基本知識 顏色空間 RGB HSV 圖像格式 BMP格式 …

k8s面試題總結(十五)

1.如何使用Kubernetes進行多環境部署&#xff08;如開發&#xff0c;測試和生產環境&#xff09;&#xff1f; 使用命名空間&#xff08;namespaces&#xff09;&#xff1a; 命名空間是用于邏輯隔離和資源分組的一種方式&#xff0c;可以為每個環境創建單獨的命名空間。 2.使…

linux中yum和wget指令的區別

yum 和 wget 都是 Linux 上的下載工具&#xff0c;但它們的用途、下載方式和適用場景不同。以下是它們的 主要區別&#xff1a; 1. yum 是軟件包管理器&#xff0c;wget 是文件下載工具 功能yumwget用途安裝、更新和管理 RPM 軟件包從 HTTP/HTTPS/FTP 下載文件工作方式通過 yu…

性能優化:服務器性能影響網站加載速度分析

問題&#xff1a;網站訪問加載慢是受部署服務器的核數、帶寬、內存影響嗎&#xff1f;&#xff1f; 文章目錄 前言一、服務器核數&#xff08;CPU&#xff09;二、帶寬三、內存&#xff08;RAM&#xff09;四、其他潛在影響因素五、排查與優化步驟六、總結 前言 網站訪問加載速…

【python】一文掌握 Conda 指令 (anaconda備忘清單)

文章目錄 入門常用基礎命令環境與包管理包與源管理更改環境導出環境配置其它額外提示這是開始使用 conda 命令的快速參考備忘單,初次學習可參考 這里 參考: Anaconda文檔官網命令Cheat sheetConda cheatsheet PDF入門 常用基礎命令 命令說明conda info查看 conda 的一系列基…

Qt:繪圖API

目錄 初識繪圖 繪圖API的使用 繪制形狀(QPaintEvent) 繪制文字(畫筆QPen) 內部填充(畫刷QBrush) 繪制圖片(QPixmap) 初識繪圖 我們前面學習 Qt 主要是學 Qt 的各種控件&#xff0c;本質上都是畫出來的 都是一些常用的東西&#xff0c;Qt 已經提前畫好了&#xff0c;拿過…

【附JS、Python、C++題解】Leetcode面試150題(9)——三數之和

一、題目????? 15. 三數之和 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足&#xff1a; i!j、i!k 且 j! k &#xff0c;同時還滿足&#xff1a;nums[i] nums[j] nums[k] 0 。請你返回所有和為 0 且不重復的三元組。 注意…

開源、創新與人才發展:機器人產業的戰略布局與稚暉君成功案例解析

目錄 引言 一、開源&#xff1a;機器人產業的戰略布局 促進技術進步和生態建設 吸引人才和合作伙伴 建立標準和網絡效應 降低研發風險與成本 二、稚暉君&#xff1a;華為"天才少年計劃"的成功典范 深厚的技術積累與動手能力 強烈的探索和創新意識 持續公開…

Android筆記:Android平臺下SVG格式的解析與實踐

在移動應用開發的廣闊天地里,開發者們始終致力于打造視覺效果卓越、適配各類設備屏幕的優質應用。SVG(Scalable Vector Graphics,可縮放矢量圖形)作為基于 XML 的圖形格式,以其鮮明特性,為 Android 開發者提供了實現這一愿景的關鍵路徑。接下來,本文將全方位深入解析在 …

mac本地部署Qwq-32b記錄

導語 昨天看到阿里開源了Qwq-32b&#xff0c;號稱性能可以媲美Deepseek-R1。今天晚上有空就在Mac上折騰了一下&#xff0c;使用ollma進行了部署&#xff0c;效果感覺還不錯&#xff0c;特此記錄。 環境 硬件 型號&#xff1a;Macbook M1 Pro 14寸內存&#xff1a;32G 環境…