zoukankan      html  css  js  c++  java
  • 性能测试三十二:监控之Java线程监控

    线程的五种状态
    * 新建:new
    * 运行:runnable
    * 等待:waitting(无限期等待),timed waitting(限期等待)
    * 阻塞:blocked
    * 结束:terminated

    线程的两种监控方法
    一,jvisualvm,图形界面的方式
    监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,第二行添加:
    JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.0.0.9"

    1-改port
    2-改hostname为本机ip

    如果想要监控和多个tomcat,则需要在每一个tomcat下都添加这行参数,且端口号不重复

    保存并重启tomcat

    查看10086的进程是否存在:netstat -an|grep 10086

     

    或者

    查看10086的使用详情:lsof -i:10086

    windows_cmd下,输入(前提,jdk配好环境变量)

    配置ip

     

    在监控的ip上右键_添加JMX连接

    填写端口号

    命令行执行 netstat -an|grep 10086

    查看线程

    二,jstack pid(进程号):命令行方式,打印当前所有的线程及执行状态

     

    由于此命令会直接把内容展示在屏幕上,不好查看,所以最好重定向输出

    如,把结果打印到a.log文件里面:jstack 8743 > a.log

    每一段这种就是一个线程

     构建几个场景看看

    构造线程状态的Java脚本:java -jar thread-test.jar [1|2|3|4]
    构造不同的状态的线程


    1:runnable

    java -jar thread-test.jar 1

    复制一个会话,查看刚刚运行的java的进程

    2:waitting

    java -jar thread-test.jar 2

    3:timedWaitting

    java -jar thread-test.jar 3


    4:blocked

    java -jar thread-test.jar 4

  • 相关阅读:
    第四单元博客总结——暨OO课程总结
    OO--第三单元规格化设计 博客作业
    关于博客园主——他死了
    编译错误总集
    密码是我QQ签名
    P1600 天天爱跑步
    天气之子——天空上是另一个世界
    可持久化01trie树——模板
    P1270 “访问”美术馆——不太一样的树形DP
    P1099 树网的核——模拟+树形结构
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10290155.html
Copyright © 2011-2022 走看看