jvm 监控
jvm监控可视化的有 jconsole 、jmc 、jvisualvm
其中jvisualvm开启一些监控会导致他自己关闭。
并且jdk下有很多工具可以进行jvm监控,
jmap -histo:live pid 进行pid可通过jvisualvm查看,jvisualvm开启时能看到所有java进程以及pid
jmap -histo:live可以输出所有对象个数,以及内存可以监控单例以及是否有内存泄露。此命令有时会
失败,多重试几次即可。
查看线上情况可以根据jmx协议查看线上jvm情况以及根据线上docker情况配置垃圾收集线程数以及内存jsf应用
(类似dubbo应用)
netip=`hostname -i`
netip=`ifconfig | awk -F'addr:|Bcast' '/Bcast/{print $2}' `
cd `dirname $0`
setsid java -XX:ParallelGCThreads=8 -XX:ConcGCThreads=4 -Xms1024m -Xmx8g -classpath .:../conf/:../lib/* - DworkerServerName=mbi.findgoods.server1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=52001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=$netip com.xx.app.server.ServerMain_FindGoods &
#tail -f nohup.out
参考
http://my.oschina.net/feichexia/blog/196575
http://www.infoq.com/cn/articles/java-profiling-with-open-source
垃圾回收线程先关连接
http://jinnianshilongnian.iteye.com/blog/2247685
tomcat配置jmx监控
http://yunzhu.iteye.com/blog/1554869
感谢网友的研究