国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用JMX監(jiān)測JVM的運(yùn)行參數(shù)

2019-11-10 18:10:34
字體:
供稿:網(wǎng)友

http://blog.csdn.net/rachel_luo/article/details/8932932

翻譯自http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html

 用JMX管理你的JVMJMX是Java管理擴(kuò)展的縮寫,也是當(dāng)前Java技術(shù)中很核心的一塊,JMX使得構(gòu)建可擴(kuò)展、可管理、伸縮性好的Java框架變得更加容易。更重要的是,JMX是J2SE的一部分,也就是說,使用JMX還能獲得很好的兼容性,因?yàn)樗菢?biāo)準(zhǔn)Java的一部分說了這些,也許你對JMX的重要性還是沒有很直觀的認(rèn)識(shí),那么當(dāng)你知道最普及的servlet容器tomcat、大名鼎鼎的開源服務(wù)器JBOSS,都是完全基于JMX的,甚至連大部分商用的應(yīng)用服務(wù)器如weblogic,都采用JMX作為其管理平臺(tái)的實(shí)現(xiàn)時(shí),你還會(huì)懷疑JMX的重要性嗎。還是半信半疑?OK,就連與你朝夕相處的JVM,都是基于JMX架構(gòu)的!本文就是介紹關(guān)于如何用JMX對你的JVM進(jìn)行管理1.設(shè)置環(huán)境變量可以在命令行以java -DPRoperty=value的形式設(shè)置環(huán)境變量,不過這樣只會(huì)對當(dāng)前命令行窗口有效;或者修改操作系統(tǒng)的環(huán)境變量在以前的Java中,要想利用JMX管理某個(gè)JVM應(yīng)用,必須加上com.sun.management.jmxremote這個(gè)系統(tǒng)變量,以告之JVM開放特定端口和協(xié)議用于管理。但是Java6已經(jīng)默認(rèn)支持JMX了,也就是說:在過去的Java版本中,假設(shè)你要運(yùn)行Notepad這個(gè)程序,必須這么做:% cd JDK_HOME/demo/jfc/Notepad% java -Dcom.sun.management.jmxremote -jar Notepad.jar而在Java6中,只需敲入% java -jar Notepad.jar 即可,接下來任意JMX兼容的客戶端都可以連接到這個(gè)應(yīng)用進(jìn)行管理,實(shí)現(xiàn)所謂的out-of-the-box管理。(在Windows系統(tǒng)中,出于安全原因,如果要進(jìn)行本地的監(jiān)控與管理,你的臨時(shí)文件夾目錄必須是NTFS格式的,否則不能提供足夠的訪問控制)2.運(yùn)行jconsole這是一個(gè)默認(rèn)的JMX管理客戶端實(shí)現(xiàn),直接在命令行敲入jconsole即可。jconsole用作相關(guān)的調(diào)試很方便,但是不適合作為商用,因?yàn)檫@東西本身比較占資源3.在jconsole里面就能看到剛剛運(yùn)行的Notepad了,雙擊連接即可,連接后可以看到該程序運(yùn)行的各項(xiàng)性能參數(shù)

Ok了,就這么多?非也,以上只是針對本地監(jiān)視和管理的,也就是在一臺(tái)機(jī)器上運(yùn)行監(jiān)控程序和被監(jiān)控程序,如果是遠(yuǎn)程呢,jconsole不在本機(jī)呢?那就比較麻煩一些了1.遠(yuǎn)程的話,首先在運(yùn)行某個(gè)Java程序前,必須加上一些變量參數(shù):com.sun.management.jmxremote.port=portNumportNum指代RMI連接的端口號(hào)。同時(shí),遠(yuǎn)程連接必須提供安全保證,所以默認(rèn)使用基于SSL和TLS的密碼認(rèn)證2.設(shè)置密碼(單用戶)將JRE_HOME/lib/management目錄的jmxremote.passWord.template文件改名為jmxremote.password,修改文件的訪問權(quán)限,只有管理員才能讀寫。然后給不同角色設(shè)置密碼,默認(rèn)已經(jīng)有兩個(gè)角色 monitorRole 和controlRole3.設(shè)置密碼(多用戶)將JRE_HOME/lib/management目錄的jmxremote.password.template文件拷貝到JRE根目錄并改名為jmxremote.password;同樣修改權(quán)限、設(shè)置密碼;然后按以下參數(shù)啟動(dòng)JVM:com.sun.management.jmxremote.password.file=pwFilePath 其中,pwFilePath是密碼文件的路徑4.用jconsole連接如果不用SSL,那么直接輸入:jconsole hostName:portNum如果使用SSL,就要加上參數(shù):% java -Djavax.NET.ssl.keyStore=keystore -Djavax.Net.ssl.keyStorePassword=password Server這只是驗(yàn)證了服務(wù)器端而已,如果還要驗(yàn)證SSL客戶端,也要設(shè)置類似的值,詳細(xì)設(shè)置可以參考:http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CustomizingStores

我們繼續(xù)深入討論一下剛才說到的密碼驗(yàn)證。JMX提供了兩個(gè)文件進(jìn)行密碼和訪問控制,一個(gè)是剛才提到的jmxremote.password文件,用于設(shè)置角色密碼;另一個(gè)jmxremote.access 是訪問控制文件,定義了每個(gè)角色的讀寫的權(quán)限密碼文件示例:# The "monitorRole" role has password "QED".# The "controlRole" role has password "R&D".monitorRole QEDcontrolRole R&D

access文件示例:# o The "monitorRole" role has readonly access.  # o The "controlRole" role has readwrite access.monitorRole   readonlycontrolRole   readwrite

監(jiān)測和管理相關(guān)的系統(tǒng)屬性之前已經(jīng)提到了一些屬性和含義,但是我們是在命令行下設(shè)置它們的,為了不每次都這么做,JMX提供了一個(gè)屬性文件,即JRE_HOME/lib/management/management.properties,文件里面以注釋形式提供了所有屬性的含義和用法。


上一篇:C# Stack使用

下一篇:QObject 和組合模式

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌邑市| 翁牛特旗| 湘乡市| 南岸区| 固安县| 孟州市| 韩城市| 邢台市| 璧山县| 临沭县| 通榆县| 分宜县| 蓝山县| 樟树市| 无极县| 中阳县| 元氏县| 遂昌县| 遂宁市| 满洲里市| 综艺| 增城市| 迁西县| 聊城市| 手游| 黎川县| 富顺县| 翁牛特旗| 三门峡市| 冕宁县| 唐河县| 三台县| 揭西县| 崇州市| 闵行区| 鄂尔多斯市| 沙坪坝区| 民和| 渭源县| 绩溪县| 澎湖县|