zoukankan      html  css  js  c++  java
  • Java线程及Jvm监控工具

    “昨天晚上很冷让我遇见你,你站在德克士门口等你男朋友,
    我站在你对面街上看了你那么久,
    你男朋友为何要对你发火,你俩走了好几条街为何他不把你的手放进他的衣兜里,
    为什么你男朋友要走在前面,为何一起吃饭不给你点干煸鱿鱼,为何晚上不送你回家,
    为何我最宝贝的一个人,在别人眼里就什么都不是了。”
    ——金玟岐《岁月神偷》

    Java线程状态

    线程的五种状态

    * 新建:new(时间很短)

    * 运行:runnable

    * 等待:waitting(无限期等待),timed waitting(限期等待)

    * 阻塞:blocked

    * 结束:terminated(时间很短)

    Jvm监控工具

    一、jstack

    介绍:

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
    如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
    如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
    另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

    使用:

    1、查看运行程序的进程号

    2、jstack dump当前线程状态

    3、根据当前抓取到的信息进行进一步的分析

    二、jvisualvm

    jdk自带有个jvisualvm工具、该工具是用来监控java运行程序的cpu、内存、线程等的使用情况。并且使用图表的方式监控java程序、还具有远程监控能力。

    前期准备

    1、上传tomcat到虚拟机,webapps下存在Prefteach包

    2、监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,搜索JAVA_OPTS=,在if里面,添加:

      -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.101
        以上添加的内容,需要修改两处
       1-改port
       2-改hostname为本机ip

    3、启动tomcat并打开输出日志:./startup.sh ../logs/catalina.out

    jvisualvm使用

    1、windows键+R键 输入jvisualvm回车

    2、右键远程添加远程主机

    3、在 主机ip 上右键添加jmv连接

    4、输入远程连接的端口号点击确定

    5、双击192.168.1.101:10086,打开如下图所示的界面

    6、进入jvisualvm时时查看程序运行状态

    注释:在测试环境中有可能没有权限在服务器上添加需要远程连接的配置,这样只能使用jstack

  • 相关阅读:
    关于apache的动态与静态编译
    使用awk处理正则表达式时注意事项
    fedora下apache默认配置
    vim显示行号、语法高亮、自动缩进的设置
    简单介绍apahce内存管理机制
    处理路径上的小技巧
    Educational Codeforces Round 80 (Rated for Div. 2)
    web前端页面性能优化小结
    web标准—可用性、可维护性、可访问性
    雅虎团队经验:网站页面性能优化的 34条黄金守则
  • 原文地址:https://www.cnblogs.com/hanxiaobei/p/5515404.html
Copyright © 2011-2022 走看看