1.介紹
北京網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
JConsole圖形用戶(hù)界面是符合Java管理擴(kuò)展(JMX)規(guī)范的監(jiān)視工具,可以監(jiān)測(cè)有關(guān)在Java平臺(tái)上運(yùn)行的應(yīng)用程序的性能和資源消耗的信息。
啟動(dòng)JConsole
jconsole [ options ] [ connection ... ]
connection = pid | host:port | jmxURL
-interval=n:設(shè)置更新間隔(默認(rèn)4秒)
-notile :不平鋪 (for two or more connections).
-pluginpath plugins:指定目錄,及jar路徑。
jar中必須包含 META-INF/services/com.sun.tools.jconsole.JConsolePlugin
關(guān)于jmxURL,可以參考javax.management.remote.JMXServiceURL說(shuō)明。
2.本地監(jiān)控
% jconsole #進(jìn)程 % jconsole processID
3.遠(yuǎn)程監(jiān)控
%jconsole hostName:portNum
3.1遠(yuǎn)程監(jiān)控配置
設(shè)置此屬性注冊(cè)了Java VM平臺(tái)的MBean并通過(guò)專(zhuān)用接口發(fā)布了遠(yuǎn)程方法調(diào)用(RMI)連接器,以允許JMX客戶(hù)端應(yīng)用程序監(jiān)視本地Java平臺(tái),即與JMX客戶(hù)機(jī)在同一臺(tái)機(jī)器上運(yùn)行的Java VM 。
3.1開(kāi)啟JMX端口
com.sun.management.jmxremote #JDK6以前版本,需要為Java SE示例應(yīng)用程序記事本啟用JMX代理 %cd JDK_HOME /demo/jfc/ Notepad %java -Dcom.sun.management.jmxremote -jar Notepad.jar #JDK以后版本可以啟用開(kāi)箱即用的管理代理監(jiān)視和管理 %java -jar Notepad.jar #portNum是要啟用JMX RMI連接的端口號(hào) #設(shè)置此屬性將使用眾所周知的名稱(chēng)“jmxrmi”在指定端口的私有只讀注冊(cè)表中發(fā)布一個(gè)附加的RMI連接 com.sun.management.jmxremote.port = portNum
對(duì)于生產(chǎn)系統(tǒng),使用SSL客戶(hù)端證書(shū)來(lái)驗(yàn)證用戶(hù)管理的客戶(hù)端主機(jī)和密碼認(rèn)證。
有關(guān)詳細(xì)信息,請(qǐng)參閱使用SSL和 使用LDAP身份驗(yàn)證的主題。
3.2使用密碼認(rèn)證
#開(kāi)啟或禁用 com.sun.management.jmxremote.authenticate=false
3.2.1 LDAP(不熟悉,不討論)
com.sun.management.jmxremote.login.config
3.2.2 密碼認(rèn)證
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 \-Dcom.sun.management.jmxremote.ssl=false \-Dcom.sun.management.jmxremote.authenticate=true \-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
其中com.sun.management.jmxremote.password.file可以從 JRE_HOME/lib/jmxremote.password.template模板獲得;
com.sun.management.jmxremote.access.file可以同JRE_HOME/lib/jmxremote.access模板獲得
4.功能
4.1選項(xiàng)卡
概述(Overview):顯示有關(guān)Java VM和監(jiān)視值的概述信息。MBeans(MBeans):顯示有關(guān)MBean的信息。
4.1.1概述信息
“概述”選項(xiàng)卡顯示有關(guān)CPU使用情況,內(nèi)存使用情況,線(xiàn)程計(jì)數(shù)以及Java VM中加載的類(lèi)的圖形監(jiān)視信息,均在單個(gè)屏幕中。
JConsole允許您將圖表中顯示的數(shù)據(jù)保存在逗號(hào)分隔值(CSV)文件中。要從圖表保存數(shù)據(jù),只需右鍵單擊任何圖表,
4.1.2 內(nèi)存選項(xiàng)卡
“內(nèi)存”選項(xiàng)卡提供有關(guān)內(nèi)存消耗和內(nèi)存池的信息。
Eden Space (heap): 最初為大多數(shù)對(duì)象分配內(nèi)存的池
Survivor Space (heap): 包含在Eden空間的垃圾回收中幸存下來(lái)的對(duì)象的池
Tenured Generation (heap):包含在幸存者空間中存在一段時(shí)間的對(duì)象的池
Permanent Generation (non-heap):包含虛擬機(jī)本身的所有反射數(shù)據(jù)的池,如類(lèi)和方法對(duì)象。對(duì)于使用類(lèi)數(shù)據(jù)共享的Java VM,這一代分為只讀和讀寫(xiě)區(qū)
Code Cache (non-heap): HotSpot Java VM還包括代碼緩存,其中包含用于編譯和存儲(chǔ)本機(jī)代碼的內(nèi)存。
“ 詳細(xì)信息”區(qū)域顯示幾個(gè)當(dāng)前內(nèi)存指標(biāo):
已使用(Used):當(dāng)前使用的內(nèi)存量,包括所有對(duì)象占用的內(nèi)存,可訪問(wèn)和不可訪問(wèn)。
承諾(Committed):保證可供Java VM使用的內(nèi)存量。承諾的內(nèi)存量可能會(huì)隨時(shí)間而變化。Java虛擬機(jī)可能會(huì)將內(nèi)存釋放到系統(tǒng),并且已提交內(nèi)存的數(shù)量可能小于啟動(dòng)時(shí)初始分配的內(nèi)存量。提交的內(nèi)存量將始終大于或等于已使用的內(nèi)存量。
最大值(Max):可用于內(nèi)存管理的最大內(nèi)存量。其價(jià)值可能會(huì)改變或未定義。即使所使用的數(shù)量小于或等于最大值(例如,當(dāng)虛擬內(nèi)存系統(tǒng)較低時(shí)),如果Java VM嘗試增加使用的內(nèi)存大于已提交的內(nèi)存,則內(nèi)存分配可能會(huì)失敗。
GC時(shí)間:在垃圾收集上花費(fèi)的累積時(shí)間和總調(diào)用次數(shù)。它可能有多行,每行都表示Java VM中使用的一個(gè)垃圾收集器算法。
右下方的條形圖顯示堆和非堆內(nèi)存中的內(nèi)存池所消耗的內(nèi)存。當(dāng)使用的內(nèi)存超過(guò)內(nèi)存使用閾值時(shí),該條將變?yōu)榧t色。您可以通過(guò)MemoryMXBean的屬性設(shè)置內(nèi)存使用閾值。
Heap and Non-Heap
非堆內(nèi)存包括所有線(xiàn)程之間共享的方法區(qū)域和Java VM的內(nèi)部處理或優(yōu)化所需的內(nèi)存。它存儲(chǔ)每個(gè)類(lèi)的結(jié)構(gòu),例如運(yùn)行時(shí)常量池,字段和方法數(shù)據(jù),以及方法和構(gòu)造函數(shù)的代碼.
堆內(nèi)存是運(yùn)行時(shí)數(shù)據(jù)區(qū)域,Java VM為此分配所有類(lèi)實(shí)例和數(shù)組的內(nèi)存.
內(nèi)存池和內(nèi)存管理器
內(nèi)存池和內(nèi)存管理器是Java VM內(nèi)存系統(tǒng)的關(guān)鍵方面。
1.一個(gè)內(nèi)存池表示Java虛擬機(jī)管理的存儲(chǔ)區(qū)。Java VM具有至少一個(gè)內(nèi)存池,并且可能在執(zhí)行期間創(chuàng)建或刪除內(nèi)存池。內(nèi)存池可以屬于堆或非堆內(nèi)存。
2.一個(gè)內(nèi)存管理器管理一個(gè)或多個(gè)存儲(chǔ)池。垃圾回收器是一種負(fù)責(zé)回收由不可達(dá)對(duì)象使用的內(nèi)存的內(nèi)存管理器。Java VM可能有一個(gè)或多個(gè)內(nèi)存管理器。它可能會(huì)在執(zhí)行期間添加或刪除內(nèi)存管理器。內(nèi)存池可以由多個(gè)內(nèi)存管理器管理。
垃圾收集
有關(guān)更多信息,請(qǐng)參閱使用5.0 HotSpot VM調(diào)整垃圾收集。
4.1.3監(jiān)控線(xiàn)程使用
“線(xiàn)程”選項(xiàng)卡提供有關(guān)線(xiàn)程使用的信息。
左下角的線(xiàn)程列表列出了所有活動(dòng)線(xiàn)程。如果在“過(guò)濾器”字段中輸入字符串,“線(xiàn)程”列表將只顯示名稱(chēng)包含您輸入的字符串的線(xiàn)程。單擊“線(xiàn)程”列表中的線(xiàn)程名稱(chēng),以顯示有關(guān)該線(xiàn)程的信息,包括線(xiàn)程名稱(chēng),狀態(tài)和堆棧跟蹤。
圖表顯示隨著時(shí)間的推移活動(dòng)線(xiàn)程數(shù)。顯示兩行。
紅色:峰值線(xiàn)程數(shù)
藍(lán)色:活動(dòng)線(xiàn)程數(shù)。
線(xiàn)程MXBean提供了幾個(gè)其他有用的操作,這些操作未被“線(xiàn)程”選項(xiàng)卡覆蓋。
findMonitorDeadlockedThreads:檢測(cè)對(duì)象監(jiān)視器鎖上是否有任何線(xiàn)程死鎖。此操作返回一系列死鎖的線(xiàn)程ID。
getThreadInfo:返回線(xiàn)程信息。這包括名稱(chēng),堆棧跟蹤和線(xiàn)程當(dāng)前被阻止的監(jiān)視器鎖(如果有)以及哪個(gè)線(xiàn)程持有該鎖以及線(xiàn)程爭(zhēng)用統(tǒng)計(jì)信息。
getThreadCpuTime:返回給定線(xiàn)程消耗的CPU時(shí)間。
2.檢測(cè)死鎖線(xiàn)程
檢測(cè)死鎖按鈕將檢測(cè)涉及對(duì)象監(jiān)視器和java.util.concurrent可自動(dòng)同步器的死鎖周期(請(qǐng)參閱java.lang.management.LockInfo的API規(guī)范 文檔)。在Java SE 6中添加了對(duì)java.util.concurrent鎖的監(jiān)視支持 。如果JConsole連接到Java SE 5.0 VM,則檢測(cè)死鎖機(jī)制將只會(huì)發(fā)現(xiàn)與對(duì)象監(jiān)視器相關(guān)的死鎖。JConsole不會(huì)顯示與所有同步器相關(guān)的任何死鎖。
4.1.4 監(jiān)控類(lèi)加載
“類(lèi)”選項(xiàng)卡顯示有關(guān)類(lèi)加載的信息。
紅線(xiàn)是加載的類(lèi)的總數(shù)(包括隨后卸載的類(lèi))。
藍(lán)線(xiàn)是當(dāng)前加載的類(lèi)的數(shù)量。
選項(xiàng)卡底部的“詳細(xì)信息”部分顯示自Java VM啟動(dòng)以來(lái)加載的類(lèi)的總數(shù),當(dāng)前加載的數(shù)量和卸載的數(shù)量。您可以通過(guò)選中右上角的復(fù)選框?qū)㈩?lèi)加載跟蹤設(shè)置為詳細(xì)輸出。
4.1.5 查看VM信息
“VM摘要”選項(xiàng)卡提供有關(guān)Java VM的信息。
Summary
Uptime: Java VM啟動(dòng)以來(lái)的總時(shí)間
Process CPU Time: Java VM自啟動(dòng)以來(lái)消耗的CPU總時(shí)間。
Total Compile Time:在JIT 編譯中花費(fèi)的總累計(jì)時(shí)間
Threads
Live threads: 當(dāng)前的守護(hù)進(jìn)程線(xiàn)程數(shù)和非守護(hù)進(jìn)程線(xiàn)程數(shù)。
Peak: 自Java VM啟動(dòng)以來(lái)最多的實(shí)時(shí)線(xiàn)程數(shù)。
Daemon threads: 當(dāng)前的守護(hù)進(jìn)程線(xiàn)程數(shù)。
Total threads started: Java VM啟動(dòng)后啟動(dòng)的線(xiàn)程總數(shù),包括守護(hù)程序,非守護(hù)程序和已終止的線(xiàn)程。
Classes
Current classes loaded: 當(dāng)前加載到內(nèi)存中的類(lèi)數(shù)。
Total classes loaded:自Java VM啟動(dòng)以來(lái)加載到內(nèi)存中的總數(shù),包括隨后卸載的類(lèi)的總數(shù)。
Total classes unloaded:從Java VM啟動(dòng)以來(lái)從內(nèi)存中卸載的類(lèi)數(shù)。
Memory
Current heap size: 堆當(dāng)前占用的千字節(jié)數(shù)。
Committed memory: 分配給堆使用的內(nèi)存總量。
Maximum heap size:堆占用的最大千字節(jié)數(shù)。
Objects pending for finalization:等待完成的對(duì)象數(shù)量。
Garbage collector: 有關(guān)垃圾收集的信息,包括垃圾回收器名稱(chēng),執(zhí)行的集合數(shù)以及執(zhí)行GC的總時(shí)間。
Operating System
Total physical memory:操作系統(tǒng)具有的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量。
Free physical memory: 操作系統(tǒng)可用的可用內(nèi)存量。
Committed virtual memory: 保證運(yùn)行進(jìn)程可用的虛擬內(nèi)存量。
Other Information
VM arguments: 應(yīng)用程序傳遞給Java VM的輸入?yún)?shù),不包括main方法的參數(shù)。
Class path: 系統(tǒng)類(lèi)加載器用于搜索類(lèi)文件的類(lèi)路徑。
Library path: 加載庫(kù)時(shí)要搜索的路徑列表。
Boot class path:引導(dǎo)類(lèi)路徑由引導(dǎo)類(lèi)加載器用于搜索類(lèi)文件。
參考資料
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jconsole.html
http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html
網(wǎng)站名稱(chēng):使用JConsole監(jiān)控
URL鏈接:http://chinadenli.net/article18/joipdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)