java线上项目排查,Arthas简单上手

简介: java线上项目排查,Arthas简单上手

Arthas 是Alibaba开源的Java诊断工具。参考:arthas

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

    1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
    2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
    3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
    4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
    5. 是否有一个全局视角来查看系统的运行状况?
    6. 有什么办法可以监控到JVM的实时运行状态?
    7. 怎么快速定位应用的热点,生成火焰图?

    Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

    1、安装(Linux):

    curl -L https://alibaba.github.io/arthas/install.sh | sh

    image.gif

    2、启动:

    ./as.as

    image.gif

    image.png

    序号后的数值(如:15075)为当前服务器上的进程PID。选择你要排查的项目进程,选择序号(如:1):

    image.png

    则进入到arthas交互页面。

    3、常用命令:

    3.1)“上帝视角”,即Dashboard。对当前项目的数据监控。

    image.png

    3.2)thread。查看当前线程信息,查看线程的堆栈。

    thread:查看所有线程。

    thread -n 5:查看最忙(CPU使用率最高)的5条线程。

    thread -b:找出当前阻塞其他线程的线程。

    thread -state:查看指定状态的线程。

    image.png

    3.3)jad。反编译class。

    jad com.icode.controller.VersionController

    image.gif

    image.png

    3.4) watch。观察指定方法的调用情况。能观察到的范围为:返回值抛出异常入参,通过编写 OGNL 表达式进行对应变量的查看。

    如查看某个方法的返回值:

    watch 全路径类名 方法名 returnObj

    image.gifimage.png

    3.5) trace。输出方法路径上的每个节点上耗时。

    trace 全路径类名 方法名


    image.png

    3.6)jvm。查看当前JVM信息。

    image.png

    4、中断、退出:

       4.1)使用ctrl+c中断artahs执行。

       4.2)使用 exit 退出arthas。

    此外,arthas还提供web console。通过浏览器连接arthas。

    其他常用命令,以及用法参考官方文档。 这里只展示几个测试用的简单上手命令。以供以后查阅。

    相关文章
    |
    10天前
    |
    安全 Java API
    Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
    本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
    125 1
    |
    1月前
    |
    前端开发 Java API
    2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
    本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
    443 1
    |
    1月前
    |
    JavaScript Java 微服务
    现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
    本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
    312 63
    |
    8天前
    |
    IDE 安全 Java
    Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
    Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
    80 1
    |
    10天前
    |
    存储 小程序 Java
    热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
    小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
    |
    2月前
    |
    安全 Java 测试技术
    Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
    本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
    107 0
    |
    2月前
    |
    安全 JavaScript Java
    java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
    本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
    146 0
    |
    2月前
    |
    缓存 Java 数据库
    Java 项目分层架构实操指南及长尾关键词优化方案
    本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
    143 2
    |
    2月前
    |
    人工智能 安全 Java
    掌握Java反射:在项目中高效应用反射机制
    Java反射是一种强大功能,允许程序在运行时动态获取类信息、创建对象、调用方法和访问字段,提升程序灵活性。它在框架开发、动态代理、注解处理等场景中广泛应用,如Spring和Hibernate。但反射也存在性能开销、安全风险和代码复杂性,应谨慎使用。