V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abscasey
V2EX  ›  Java

Java 的在线排查和分析工具

  •  
  •   abscasey · 2017-02-22 10:18:27 +08:00 · 2810 次点击
    这是一个创建于 2839 天前的主题,其中的信息可能已经有所发展或是发生改变。
    线上不能断点, 分析不知从何入手? greys值得入手:
    https://github.com/oldmanpushcart/greys-anatomy
    4 条回复    2017-02-23 16:04:40 +08:00
    mx1700
        1
    mx1700  
       2017-02-22 20:14:10 +08:00 via Android
    先收藏
    0915240
        2
    0915240  
       2017-02-22 23:24:02 +08:00
    关注下
    abscasey
        3
    abscasey  
    OP
       2017-02-23 14:17:00 +08:00
    个人常用的有:
    1 线上性能分析
    如果发现某些服务过慢, 响应有问题, 耗时在哪里可以使用: trace 或 ptrace(trace 增强版, 可以通过条件加路径指定查看)各调用的耗时
    如: ptrace com.test..TemplateActionItemPublish execute params[0].getAction().equals("light-render") --path=com.test.*.repository*

    2 线上数据记录
    当线上无法断点时, 或分析某次线上调用时, 通过 tt 来记录, 当前调用的输入和输出

    3 top 线程查看
    直接使用 top 命令查看, 各线程的 cpu 占用, 以及其调用栈, 省去 dump 线程再分析的各种过程
    iamtz
        4
    iamtz  
       2017-02-23 16:04:40 +08:00
    网上之前见到有人介绍这个诊断工具:
    byteman 是 jboss 下的一个项目,是一个非常方便的 java 分析工具,能够拦截字节码执行,执行代码和修改变量,是一个诊断问题的利器。在 linux 下使用起来非常方便,不用对目标应用做任何修改,可以动态打开目标应用的监听端口,当然仅限于 openjdk , hotspot 和 jrockit , ibm jdk 不支持。

    原文: http://hushi55.github.io/2014/12/31/byteman
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.