<small id='trc0zwaVJq'></small> <noframes id='cj5v'>

  • <tfoot id='6MQfv8u4i7'></tfoot>

      <legend id='hetUKX2L'><style id='9NLohgd'><dir id='1whdbyDLtG'><q id='DMiGRf'></q></dir></style></legend>
      <i id='mUH8lMFy7D'><tr id='SmTg8Z9AwE'><dt id='RXQTbSm'><q id='Yzw2NFl'><span id='FkjAh8'><b id='Mm8E4nVFw'><form id='VpDT'><ins id='UvB1H7RZGo'></ins><ul id='vh2MAWOXGU'></ul><sub id='SfGYv3k9JE'></sub></form><legend id='ALKX'></legend><bdo id='8Q5zESXK0'><pre id='uLAtObH'><center id='lOYb0BRxI'></center></pre></bdo></b><th id='E0V89MIdaX'></th></span></q></dt></tr></i><div id='JgSTEstx'><tfoot id='G3e9k4CHQp'></tfoot><dl id='G2XRO'><fieldset id='kxmH0OR'></fieldset></dl></div>

          <bdo id='nkaYLQw'></bdo><ul id='2fdGlVU'></ul>

          1. <li id='5bxD'></li>
            登陆

            Arthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令

            admin 2019-11-06 110人围观 ,发现0个评论

            最近偶然有用户反应某些 HTTP 接口呈现超时问题,而 web 服务端的 Trace 监控没有呈现 http 返回值为 503 等异常状况。呈现这种状况一般是web容器呈现问题,客户端连

            Arthas是Alibaba开源的Java确诊东西,深受开发者喜欢。

            Github:https://github.com/alibaba/arthas

            文档:https://alibaba.github.io/arthas

            Arthas 3.1.2版别继续添加新特性,下面要点介绍:

            • logger/heapdump/vmoption/stop指令
            • 经过tunnel server衔接不同网络的arthas,便利统一管控
            • 易用性继续提高:提示符修改为arthas@pid方式,支撑ctrl + k清屏快捷键

            logger/heapdump/vmoption/stop指令

            logger指令

            检查logger信息,更新logger level

            https://alibaba.github.io/arthas/logger.html

            检查一切logger信息

            以下面的 logback.xml 为例:





            app.log

            mylog-%d{yyyy-仰卧起坐的正确做法MM-dd}.%i.txt
            100MB
            60
            2GB


            %logger{35} - %msg%n







            %-4relative [%thread] %-5level %logger{35} - %msg %n

            utf8







            运用 logger 指令打印的结果是:

            [arthas@2062]$ logger
            name ROOT
            class ch.qos.logback.classic.Logger
            classLoader sun.misc.Launcher$AppClassLoader@2a139a55
            classLoaderHash 2a139a55
            level INFO
            effectiveLevel INFO
            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
            classLoaArthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令derHash 2a139a55
            appenderRef [APPLICATION]

            从appenders的信息里,能够看到

            • CONSOLE logger的target是System.out
            • APPLICATION logger是RollingFileAppender,它的file是app.log
            • ASYNC它的appenderRef是APPLICATION,即异步输出到文件里

            检查指定姓名的logger信息

            [arthas@2062]$ logger -n org.springframework.web
            name org.springframework.web
            class ch.qos.logback.classic.Logger
            classLoader sun.misc.Launcher$AppClassLoader@2a139a55
            classLoaderHash 2a139a55
            level null
            effectiveLevel INFO
            additivity true
            codeSource file:/Users/hengyunabc/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar

            更新logger level

            [arthas@2062]$ logger --name ROOT --level debug
            update logger level success.

            heapdump指令

            dump java heap, 相似jmap指令的heap dump功用。

            dump到指定文件

            [arthas@58205]$ heapdump /tmp/dump.hprof
            Dumping heap to /tmp/dump.hprof...
            Heap dump file created

            只dump live目标

            [arthas@58205]$ heapdump --live /tmp/dump.hprof
            Dumping heap to /tmp/dump.hprof...
            Heap dump file created

            vmoption指令

            检查,更新VM确诊相关的参数

            • https://alibaba.github.io/arthas/vmoption.html

            检查一切的option

            [arthas@56963]$ vmoption
            KEY VALUE ORIGIN WRITEABLE
            ---------------------------------------------------------------------------------------------
            HeapDumpBeforeFullGC false DEFAULT true
            HeapDumpAfterFullGC false DEFAULT true
            HeapDumpOnOutOfMemory false DEFAULT true
            Error
            HeapDumpPath DEFAULT true
            CMArthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令SAbortablePrecleanW 100 DEFAULT true
            aitMillis
            CMSWaitDuration 2000 DEFAULT true
            CMSTriggerInterval -1 DEFAULT true
            PrintGC false DEFAULT true
            PrintGCDetails true MANAGEMENT true
            PrintGCDateStamps false DEFAULT true
            PrintGCTimeStamps false DEFAULT true
            PrintGCID false DEFAULT true
            PrintClassHistogramBe false DEFAULT true
            foreFullGC
            PrintClassHistogramAf false DEFAULT true
            terFullGC
            PrintClassHistogram false DEFAULT true
            MinHeapFreeRatio 0 DEFAULT true
            MaxHeapFreeRatio 100 DEFAULT true
            PrintConcurrentLocks false DEFAULT true

            检查指定的option

            [arthas@56963]$ vmoption PrintGCDetails
            KEY VALUE ORIGIN WRITEABLE
            ---------------------------------------------------------------------------------------------
            PrintGCDetails false MANAGEMENT true

            更新指定的option

            [arthas@56963]$ vmoption PrintGCDetails true
            Successfully updated the vm option.
            PrintGCDetails=true

            stop指令

            之前有用户吐槽,不小心退出Arthas console之后,shutdown会关闭系统,因而添加了stop指令来退出arthas,功用和shutdown指令共同。

            经过tunnel server衔接不同网络的arthas

            • https://alibaba.github.io/arthas/web-console.html

            在新版别里,添加了arthas tunnel server的功用,用户能够经过tunnel server很便利衔接不同网络里的arthas agent,适合做统一管控。

            发动arthas时衔接到tunnel server

            在发动arthas,能够传递--tunnel-server参数,比方:

            as.sh --tunnel-server 'ws://47.75.156.201:7777/ws'

            现在47.75.156.201是一个测验服务器,用户能够自己建立arthas tunnel server

            如果有特别需求,能够经过--agent-id参数里指定agentId。默许状况下,会生成随机ID。

            attach成功之后,会打印出agentId,比方:

             ,---. ,------. ,--------.,--. ,--. ,---. ,---.
            / O \ | .--. ''--. .--'| '--' | / O \ ' .-'
            | .-. || '--'.' | | | .--. || .-. |`. `-.
            | | | || |\ \ | | | | | || | | |.-' |
            `--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
            wiki https://alibaba.github.io/arthas
            tutorials https://alibaba.github.io/arthas/arthas-tutorials
            version 3.1.2
            pid 86183
            time 2019-08-Arthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令30 15:40:53
            id URJZ5L48RPBR2ALI5K4V

            如果是发动时没有衔接到 tunnel server,也能够在后续主动重连成功之后,经过 session指令来获取 agentId:

            [arthas@86183]$ session
            Name Value
            -----------------------------------------------------
            JAVA_PID 86183
            SESSION_ID f7273eb5-e7b0-4a00-bc5b-3fe55d741882
            AGENT_ID URJZ5L48RPBR2ALI5K4V
            TUNNEL_SERVER ws://47.75.156.201:7777/ws

            以上面的为例,在浏览器里拜访 http://47.75.156.201:8080/ ,输入 agentId,就能够衔接到本机上的arthas了。

            Arthas tunnel server的作业原理

            browser <-> arthas tunnel server <-> aArthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令rthas tunnel client <-> arthas agent

            https://github.com/alibaba/arthas/blob/master/tunnel-sArthas 3.1.2 版别发布 | 添加 logger/heapdump/vmoption 指令erver/README.md

            易用性继续提高

            提示符修改为arthas@pid方式,用户能够确认当时进程ID,防止多个进程时误操作

            [arthas@86183]$ help

            添加ctrl + k清屏快捷键

            总结

            总归,3.1.2版别的Arthas新添加了logger/heapdump/vmoption/stop指令,添加了tunnel server,便利统一管控。

            作者:中间件小哥

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP