jvm

简介: 本节介绍JVM相关命令:实时监控系统状态的dashboard,查看线程堆栈、JVM信息、系统属性(sysprop)、环境变量(sysenv)、虚拟机参数(vmoption)、性能计数器(perfcounter),以及日志管理(logger)、静态属性(getstatic)、OGNL表达式执行、MBean信息和堆内存导出(heapdump)等实用功能。

jvm相关

  1. dashboard—当前系统的实时数据面板
    第二章节已说,这里不再赘述
  2. thread—查看当前 JVM 的线程堆栈信息
    第二章节已说,这里不再赘述
  3. jvm—查看当前 JVM 的信息
  4. sysprop—查看和修改JVM的系统属性
    4.1 查看全部
    4.2 查看指定属性
    4.3 修改单个属性
  5. sysenv—查看JVM的环境变量
    5.1 查看全部环境变量
    5.2 查看指定环境变量
  6. vmoption—查看和修改JVM里诊断相关的option
    6.1 查看全部option
    6.2 查看指定option
    6.3 更新指定option
  7. perfcounter—查看当前 JVM 的Perf Counter信息使用参考
    可以用-d参数打印更多信息:
    jdk9以上的应用
    如果没有打印出信息,应用在启动时,加下面的参数:
  8. logger—查看和修改logger
    8.1 查看所有logger信息
    从appenders的信息里,可以看到
    CONSOLE logger的target是System.out
    APPLICATION logger是RollingFileAppender,它的file是app.log
    ASYNC它的appenderRef是APPLICATION,即异步输出到文件里
    8.2 查看指定logger
    8.3 查看指定classloader的logger
    其中,classloader为上述8.1或8.2中返回的
    8.4 更新全局logger level
    8.5 更新指定classloader logger level
    默认情况下,logger命令会在SystemClassloader下执行,如果应用是传统的war应用,或者spring boot fat jar启动的应用,那么需要指定classloader。
    可以先用 sc -d yourClassName 来查看具体的 classloader hashcode,然后在更新level时指定classloader:
    8.6 查看没有appender的logger
    默认情况下,logger命令只打印有appender的logger的信息。如果想查看没有appender的logger的信息,可以加上参数--include-no-appender。
    注意,通常输出结果会很长
    Java
    运行代码
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    [arthas@2062]$ logger --include-no-appender
    name ROOT
    class ch.qos.logback.classic.Logger
    classLoader sun.misc.Launcher$AppClassLoader@2a139a55
    classLoaderHash 2a139a55
    level DEBUG
    effectiveLevel DEBUG
    additivity true
    codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    appenders name CONSOLE

                                     class           ch.qos.logback.core.ConsoleAppender
                                     classLoader     sun.misc.Launcher$AppClassLoader@2a139a55
                                     classLoaderHash 2a139a55
                                     target          System.out
                                     name            APPLICATION
                                     class           ch.qos.logback.core.rolling.RollingFileAppender
                                     classLoader     sun.misc.Launcher$AppClassLoader@2a139a55
                                     classLoaderHash 2a139a55
                                     file            app.log
                                     name            ASYNC
                                     class           ch.qos.logback.classic.AsyncAppender
                                     classLoader     sun.misc.Launcher$AppClassLoader@2a139a55
                                     classLoaderHash 2a139a55
                                     appenderRef     [APPLICATION]
    

    name com
    class ch.qos.logback.classic.Logger
    classLoader sun.misc.Launcher$AppClassLoader@2a139a55
    classLoaderHash 2a139a55
    level null
    effectiveLevel DEBUG
    additivity true
    codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar

    name com.alibaba
    class ch.qos.logback.classic.Logger
    classLoader sun.misc.Launcher$AppClassLoader@2a139a55
    classLoaderHash 2a139a55
    level null
    effectiveLevel DEBUG
    additivity true
    codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    ...

  9. getstatic—查看类的静态属性
    有需再更
  10. ognl—执行ognl表达式
    有需再更
  11. mbean—查看 Mbean 的信息
    有需再更
  12. heapdump—dump java heap, 类似jmap命令的heap dump功能
相关文章
|
1月前
|
缓存 开发工具 git
QLExpress使用及源码分析
QLExpress是阿里开源的轻量级规则引擎,支持通过YAML配置表达式规则。支持AST语法树解析、上下文构建与动态执行,提供脚本缓存、别名映射、指令重写等扩展能力,适用于灵活的业务逻辑解耦与动态化控制。
|
1月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题。通过`thread`定位高耗能线程,`watch`监控方法调用与异常,结合`jad`反编译与`redefine`实现热更新,无需重启服务即可修复代码,提升线上问题响应效率。适用于SpringBoot + JDK8环境。
|
1月前
|
Arthas Java 测试技术
Arthas安装
Arthas是一款Java诊断工具,需先启动Java应用并安装JDK。通过arths-boot.jar启动后选择对应进程即可接入,支持多进程管理,适用于SpringBoot等应用的线上问题排查与性能分析。(236字符)
|
1月前
|
JSON Java 数据格式
不定参数入参
支持多种参数传递方式:非JSON格式可通过@RequestBody、@RequestParam或直接入参;JSON格式支持JSONObject解析或封装对象接收,结合@Valid实现参数校验,提升接口安全性与可维护性。(238字)
|
1月前
|
数据可视化 Java 关系型数据库
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现多节点审批,广泛应用于CRM、WMS等系统。主流技术包括BPMN、Activiti和Flowable,其中Activiti为Java系开源引擎,支持复杂流程自动化,推动企业流程数字化发展。(238字)
|
1月前
|
缓存 前端开发 Java
数据同步原理
Soul网关通过推拉模式从配置服务同步数据,支持WebSocket、HTTP长轮询、Zookeeper三种策略。1.x版本依赖Zookeeper,2.x版本默认采用HTTP长轮询,实现秒级更新。管理后台变更配置后,通过事件机制通知网关,实时更新本地缓存,确保配置高效同步。
|
1月前
|
监控 Java 调度
定时任务概述
定时任务指通过时间表达式调度执行的任务,适用于定时对账、超时取消等场景。实现方式包括单体架构的Timer、ScheduledExecutorService、Quartz、SpringTask,以及分布式架构下的TBSchedule、Elastic-Job、XXL-JOB等方案,解决集群重复执行、动态调度、故障转移与监控问题。
|
1月前
|
Java Maven Spring
打包
项目打包为单一可执行JAR,内置配置文件,通过Maven构建并使用Spring Boot插件指定主类。执行`mvn clean package`打包,`java -jar`运行(支持前台/后台),通过`netstat`或`ps`查PID后`kill -9`停止服务。也可分离JAR依赖与配置。
|
1月前
|
监控 Java Spring
整合切面,参数拦截+过滤
该Java代码使用Spring AOP实现Web请求日志切面,自动记录请求来源、URL、方式、方法、参数及耗时。通过@Pointcut定义切入点,结合@Before、@After和@Around注解实现前置、后置与环绕通知,便于统一监控和管理控制器层的请求信息,适用于日志收集与性能监控场景。(237字)
|
1月前
|
Ubuntu Shell Linux
Docker常用命令
本文介绍了Docker常用命令,涵盖启动、停止、重启、状态查看及开机自启等基础操作,版本与帮助信息查询,镜像的列出、搜索、下载、删除及空间管理,虚悬镜像处理,命令自动补全配置方法,以及后台运行Linux容器和yum下载依赖技巧,适用于Docker日常运维与开发。
59 0

热门文章

最新文章