成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實例解析JVM內存監控流程

開發 后端
本文通過實例向大家介紹一下JVM內存監控的流程,由于在建項目的需要,監控tomcat的內存使用,檢查內存泄漏的情況,相信你一定會感興趣。

你對JVM內存監控是否熟悉,這里向大家簡單描述一下,本文是親自測試的詳細配置過程,不是轉載而且linux下不需修改/etc/hosts文件,其實JDK自身已經提供了很多工具,都在JAVA_HOME/bin/目錄下:jvisualvm、jconsole、jstatd、jmap等等。

JVM內存監控流程

本文是親自測試的詳細配置過程,不是轉載而且linux下不需修改/etc/hosts文件,由于在建項目的需要,監控tomcat的內存使用,檢查內存泄漏的情況。其實JDK自身已經提供了很多工具,都在JAVA_HOME/bin/目錄下:jvisualvm、jconsole、jstatd、jmap等等,以下為試驗的環境配置:

client:vista、jdk1.6.0_18
server:linux、jdk1.6.0_02、tomcat6、IP:192.168.8.7

主要從下面三個方面描述JVM內存監控流程:

◆jmap(MemoryMap)JVM內存對象打印工具

◆jstatd配置

◆Tomcat配置JMX

一、用jmap獲取數據查看JVM內存監控

JAVA_HOME/bin/jmap-histoPID
JAVA_HOME/bin/jmap-histoPID>hismem.txt
顯示信息包括Java類、類實例對象數量、在內存中占有量的大小以及類的完整包名。

//將JVM內存堆的信息dump成為一個二進制文件,可供jstat、EclipseMAT內存分析工具來使用
JAVA_HOME/bin/jmap-dump:format=b,file=heap.binPID
EclipseMAT的分析工具:http://www.eclipse.org/mat/#p#

二:jstatd配置

需要在被JVM內存監控的服務器上面,通過jstatd來啟動RMI服務。
新建個文件jstatd.all.policy文件內容如下:
Java代碼 

  1. grantcodebase"file:${java.home}/../lib/tools.jar"{  
  2. permissionjava.security.AllPermission;  
  3. };    
  4.  

 啟動命令如下:
Java代碼 

  1. //默認端口為1099  
  2. jstatdjstatd-J-Djava.security.policy=jstatd.all.policy  
  3. //指定hostname一般情況需要重新指定hostname,否則連接不成功  
  4. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  5. -J-Djava.security.policy=test/jstatd.all.policy  
  6. //指定hostname指定端口  
  7. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  8. -J-Djava.security.policy=test/jstatd.all.policy-p8888  
  9. //啟動JMX  
  10. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  11. -J-Djava.security.policy=test/jstatd.all.policy  
  12. -J-Dcom.sun.management.jmxremote.port=8888 
  13. -J-Dcom.sun.management.jmxremote.ssl=false 
  14. -J-Dcom.sun.management.jmxremote.authenticate=false 
  15. //后臺啟動  
  16. nohupjstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  17. -J-Djava.security.policy=test/jstatd.all.policy-p8888&  
  18.  
  19. //默認端口為1099  
  20. jstatdjstatd-J-Djava.security.policy=jstatd.all.policy  
  21. //指定hostname一般情況需要重新指定hostname,否則連接不成功  
  22. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  23. -J-Djava.security.policy=test/jstatd.all.policy  
  24. //指定hostname指定端口  
  25. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  26. -J-Djava.security.policy=test/jstatd.all.policy-p8888  
  27. //啟動JMX  
  28. jstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  29. -J-Djava.security.policy=test/jstatd.all.policy  
  30. -J-Dcom.sun.management.jmxremote.port=8888 
  31. -J-Dcom.sun.management.jmxremote.ssl=false 
  32. -J-Dcom.sun.management.jmxremote.authenticate=false 
  33. //后臺啟動  
  34. nohupjstatd-J-Djava.rmi.server.hostname=192.168.8.7  
  35. -J-Djava.security.policy=test/jstatd.all.policy-p8888&  

 啟動通過:netstat-an|grep8888可以查看端口是否已經被監聽,用JAVA_HOME/bin/jmap查看java進程:
Java代碼 

  1. //查看本機的情況  
  2. jps  
  3. //查看遠程計算機192.168.8.7的情況(默認1099端口)  
  4. jps192.168.8.7  
  5. //查看遠程計算機192.168.8.78888端口  
  6. jpsrmi://192.168.8.7:8888  

 打開jvisualvm界面如下:

jvisualvm界面

右擊遠程選擇添加遠程主機:

添加遠程主機

如果重新指定了jstatd端口,選擇高級設置修改端口,如下圖:

高級設置

如果同時配置了JMX,可以在添加JMX連接如下圖:

添加JMX連接

添加后如圖所示:

#p#

三:Tomcat配置JMX實現JVM內存監控

用hostname-i查看是否為127.0.0.1,這步非常重要,否則會連接失敗,如果是,必須要配置-Djava.rmi.server.hostname比如我的配置為-Djava.rmi.server.hostname=192.168.8.7,而不需要修改hosts文件,修改此文件還可能影響到其他程序。
只需要在TOMCAT_HOME/bin/找到catalina.sh加上以下參數,重新啟動tomcat就可以了:

Xml代碼 

  1. JAVA_OPTS="$JAVA_OPTS-Djava.rmi.server.hostname=192.168.8.7  
  2. -Dcom.sun.management.jmxremote.port=8088 
  3. -Dcom.sun.management.jmxremote.ssl=false 
  4. -Dcom.sun.management.jmxremote.authenticate=false"  
  5.  
  6. JAVA_OPTS="$JAVA_OPTS-Djava.rmi.server.hostname=192.168.8.7  
  7. -Dcom.sun.management.jmxremote.port=8088 
  8. -Dcom.sun.management.jmxremote.ssl=false 
  9. -Dcom.sun.management.jmxremote.authenticate=false"  
  10.  

 打開JAVA_HOME/bin/下的jvisualvm或者jconsole的工具可以直接連接了,如下圖visualvm連接的示意圖:

visualvm連接的示意圖

也可以寫個Java類TestJMXClient.java測試下JMX連接是否成功:

Java代碼 

  1. importjava.util.HashMap;  
  2. importjava.util.Map;  
  3.  
  4. importjavax.management.MBeanServerConnection;  
  5. importjavax.management.remote.JMXConnector;  
  6. importjavax.management.remote.JMXConnectorFactory;  
  7. importjavax.management.remote.JMXServiceURL;  
  8.  
  9. /**  
  10. *@authorMichael  
  11. */  
  12. publicclassTestJMXClient{  
  13.  
  14. /**  
  15. *@paramargs  
  16. */  
  17. publicstaticvoidmain(String[]args){  
  18. try{  
  19. StringjndiPath="jmxrmi";  
  20. Stringserverhost="192.168.8.7";  
  21. Stringserverport="8088";  
  22. //url=service:jmx:rmi:///jndi/rmi://192.168.8.7:8088/jmxrmi  
  23. Stringjmxurl="service:jmx:rmi:///jndi/rmi://"+serverhost+":"  
  24. +serverport+"/"+jndiPath;  
  25. System.out.println("jmxurl:"+jmxurl);  
  26. JMXServiceURLurl=newJMXServiceURL(jmxurl);  
  27. Map<String,Object>enviMap=newHashMap<String,Object>();  
  28.  
  29. JMXConnectorconnector=JMXConnectorFactory.connect(url,enviMap);  
  30.  
  31. MBeanServerConnectionmbsc=connector.getMBeanServerConnection();  
  32. System.out.println("successfulconnected");  
  33. connector.close();  
  34. System.out.println("closeconnect");  
  35. }catch(Exceptione){  
  36. System.out.println("error");  
  37. e.printStackTrace();  
  38. }  
  39. }  
  40. }  
  41.  

【編輯推薦】

  1. JVM內存調優設置原理
  2. 探究JVM1.6與JVM1.5性能差距
  3. JVM監控在本地和遠程的應用
  4. 全面認識Eclipse中JVM內存設置
  5. JVM啟動參數中標準參數列表速查手冊

 

責任編輯:佚名 來源: javaeye.com
相關推薦

2010-03-04 10:56:52

JVM參數

2010-09-25 12:54:24

JVM內存

2012-03-02 14:20:46

JavaJVM

2010-09-27 11:00:27

TomcatJVM內存

2010-09-25 14:45:47

LinuxJVM

2010-09-26 14:44:31

JVM內存監控工具

2023-08-24 07:46:21

服務器JVM

2010-02-22 08:58:35

JVM內存模型垃圾收集

2021-10-15 08:51:09

Linux內存 Kmalloc

2010-09-27 13:26:31

JVM內存管理機制

2017-09-20 08:48:09

JVM內存結構

2009-07-09 18:03:25

tomcatJVM內存

2012-01-11 10:45:57

JavaJVM

2021-07-30 07:22:51

JVM虛擬機棧 Stack

2023-11-19 23:29:22

Heap DumpJava

2021-04-16 20:40:56

JVM內存工具

2011-03-31 09:36:35

Cacti監控

2021-07-08 06:47:19

JVM監控工具

2010-09-27 15:39:37

JVM監控工具

2015-04-22 13:18:21

云智慧API監控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久高清精品 | 久久国产精品亚洲 | 欧美日韩中文国产一区发布 | 一区二区三区网站 | 视频1区2区 | 国产精品久久久久久亚洲调教 | 亚洲精久 | 欧洲一级毛片 | 97视频人人澡人人爽 | 久久久久久精 | 日韩在线观看一区 | 日本久草 | 国产一级片一区二区三区 | 日本淫视频 | 波多野结衣中文字幕一区二区三区 | 国产精品精品视频一区二区三区 | 国产精品一区二区欧美黑人喷潮水 | 亚洲一区二区三区国产 | 国产探花在线精品一区二区 | 中文字幕国产一区 | 91大片| 99国产精品99久久久久久 | 国产三级精品三级在线观看四季网 | 日韩欧美一区二区三区免费观看 | 视频在线h | 成人国产精品免费观看视频 | 日韩成人精品一区 | 亚洲精品中文字幕 | 伊人狠狠 | 久久久精品 | 69av网| 国产精品1区2区3区 欧美 中文字幕 | 国产欧美精品一区二区色综合朱莉 | 青青久在线视频 | 国产婷婷综合 | 亚洲视频免费在线观看 | 国产91 在线播放 | 精品国产网 | 91传媒在线播放 | 99亚洲精品 | 国产福利在线 |