三款实用分析诊断工具简介

当处理海量数据的时候,很容易出现各种异常和性能瓶颈,这时常常需要分析程序运行行为和性能瓶颈以优化系统性能。这里简单介绍了三种强大的分析诊断工具以帮助大家更快更好的完成优化工作。
1.Arthas
Arthas是 阿里巴巴开源的一款 Java 线上诊断工具,利用Arthas可以对指定的JVM进程进行CPU、内存、线程、死锁监控处理,同时也可以动态的获取JVM中的源代码结构。得益于 Arthas 强大且丰富的功能,让 Arthas 能做的事情超乎想象。当你遇到以下类似问题而束手无策时,Arthas都可以帮助你解决:
(1)这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
(2)我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
(3)遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
(4)线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
(5)是否有一个全局视角来查看系统的运行状况?
(6)有什么办法可以监控到 JVM 的实时运行状态?

Arthas常用命令如下表所示:
命令 介绍
dashboard 当前系统的实时数据面板
thread 查看当前 JVM 的线程堆栈信息
watch 方法执行数据观测
trace 方法内部调用路径,并输出方法路径上的每个节点上耗时
stack 输出当前方法被调用的调用路径
tt 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
monitor 方法执行监控
jvm 查看当前 JVM 信息
vmoption 查看,更新 JVM 诊断相关的参数
sc 查看 JVM 已加载的类信息
sm 查看已加载类的方法信息
jad 反编译指定已加载类的源码
classloader 查看 classloader 的继承树,urls,类加载信息
heapdump 类似 jmap 命令的 heap dump 功能

Arthas官网:https://arthas.aliyun.com/
2.Memory Analyzer Tool
MAT(Memory Analyzer Tool)工具是一个功能丰富且轻量的 Java 堆内存分析工具,可以用来辅助发现内存泄漏减少内存占用。使用 Memory Analyzer 来分析生产环境的 Java 堆转储文件时,可以非常直观的看到各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系、对象GC Roots的相关信息等,便于分析内存泄露以及查找内存消耗情况等。
在这里插入图片描述

图1:MAT使用效果图
MAT官网:https://www.eclipse.org/mat/
3.JVM Profiler
JVM Profiler使uber开源的一款分布式追踪工具,由三项主要功能组成, 它使收集性能和资源使用率指标变得更容易, 然后可以将这些指标提供给其他系统进行进一步分析:
(1)代理功能 ( java agent ) : 支持用户以分布式的方式收集各种指标 (例如如 CPU/内存利用率) ,用于 JVM 进程的堆栈跟踪。
(2)高级分析功能(Advanced profiling capabilities): 支持跟踪任意 Java 方法和用户代码中的参数, 而不进行任何实际的代码更改。
(3)数据分析报告( Data analytics reporting ): 使用 JVM Profile 可以将指标数据推送给 Kafka topics 和 Apache Hive tables , 提高数据分析的速度和灵活性。
JVM Profiler典型的应用场景是用于生成火焰图,即通过各种 agent 在程序运行时采样并输出日志,使用 FlameGraph 工具把日志提取出来输出可在浏览器交互式查看的 SVG图片。通过火焰图,研发人员就可以轻松针对热点瓶颈进行分析和性能优化,进而突破性能瓶颈,大幅提升系统的吞吐量。
在这里插入图片描述

图2:火焰图效果
JVM Profiler官网:https://github.com/uber-common/jvm-profiler

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30622.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转群晖NAS——前言

一直以来就有购置一台家用服务器的想法,趁着双十一赶紧购置一波,于是就买了个群晖DS920还有4个8T的希捷酷狼Pro硬盘,花了我一万多的钱,心疼归心疼,东西到手之后的兴奋还是远远大于剁手之痛的。迫不及待地安装上之后&am…

怎么把群晖个人用户空间相片映射到公共空间/photo

怎么把群晖个人用户空间相片映射到公共空间/photo 1.打开File Station 到homes 目录下对应用户名右键复制用户名路径 这里复制/volume1/home/user1 2.打开控制面板进入任务计划新增触发任务事件选开机用户账户选root 任务设置用户自定义脚本填入脚本点确定回到任务。 mkdir /…

有了群晖怎么玩,分享一下我的群晖中运行的服务

原文网址:https://post.smzdm.com/p/a07mk7z9/ 我前几篇文章中说了我在服务器中弄了个虚拟机群晖,很多朋友在没有入手群晖的时候不知道群晖这玩意买来干嘛,花这么多钱,这篇文章就讲讲群晖有那些好玩实用的东西 一、Drive-套件文…

如何使用群晖nas快速收集多份文件?

经常需要在工作中收集文件的小伙伴是否遇到了一个共同的问题⚠: 比如老板让你收集公司员工的工作报告时,你一打开邮箱,几十封、几百封邮件就会涌进来,需要进行下载上百封邮件需要下载。有时候一些同事通过QQ、微信等各种app发送&a…

群晖NAS与Windows系统实现共享文件夹同步方案

一、在Windows系统中创建需要共享的文件夹 操作步骤如下: ①选中需要共享的文件夹,选择“属性”。 ②在属性弹窗中选择“共享”-->“高级共享”-->“权限”-->"添加"-->"高级"-->"立即查找"选择合适的账…

3.3 利用群晖:群辉与PC电脑直连,实现万兆/2.5G速度文件互传(解决 直连后 网络/外网/网页 访问变慢,直连后群辉无网络 cloud sync无网络)

为黑群晖和电脑装备了万兆X540 T2网卡,为实现万兆速度的文件互传,决定将黑群晖直连PC,其需要注意的点有以下三点: 修改PC和群辉的IPv4: 为实现固定IP访问群辉,这里建议修改PC和群辉均为固定IP。 1&#xff…

[NAS] Synology (群晖) DSM 7.X 挂载NTFS硬盘

前言 群晖默认支持的文件系统有btrfs和ext4,对于一些媒体影音游戏等比较大的文件,组RAID做热备对于笔者个人来说不太划算, 而在系统升级或者换设备备份时候把这些挟裹进去,备份文件则是巨大无比. 笔者的分盘策略是RAID5只存系统软件类电子书之类的软件, 挂载NTFS做云备份 冷备…

【森气杂谈】群晖NAS内外网磁盘映射以及quick connect设置

【森气杂谈】群晖NAS内外网磁盘映射以及quick connect设置 NAS内网磁盘映射具体操作步骤 NAS外网磁盘映射具体操作步骤 quick connect NAS内网磁盘映射 在频繁使用NAS时,网页版体验确实不是很好,针对这个问题,可以利用windows资源管理器里的…

一个关于宏定义的问题,我和ChatGPT、NewBing、Google Bard、文心一言 居然全军覆没?

文章目录 一、问题重述二、AI 解题2.1 ChatGPT2.2 NewBing2.3 Google Bard2.4 文心一言2.5 小结 一、问题重述 今天在问答模块回答了一道问题,要睡觉的时候,又去看了一眼,发现回答错了。 问题描述:下面的z的值是多少。 #define…

牛客专访ChatGPT:2023校园招聘如何做?附校招趋势

春招在即,牛客作为新一代数智化校园招聘引领者,为大家采访了当下“顶流ChatGPT”,关于近几年校园招聘的变化及2023企业做校招的建议。以下,为“ChatGPT专访”实录。 01. ChatGPT眼中近3年校园招聘的变化 牛客:很高兴作…

图标尺寸比例

android开发时为了节约内存,最好设计不同尺寸的图片放置在不同文件夹下。 分辨率对应开发的包 HVGA mdpi WVGA hdpi FWVGA hdpi QHD hdpi 720P xhdpi 1080P xxhdpi drawable-ldpi 对应DPI为120 drawable-mdpi 对应DPI为160 drawable-hdpi 对应DPI为240 drawable-xhd…

微信小程序tabbar美化(中间图标突起)

一、效果: 二、新建文件夹,做为组件 js: // components/navbar/index.js const App getApp();Component({options: {addGlobalClass: true,},externalClasses: [custom-class],/*** 组件的属性列表*/properties: {pageName:String,showNav: {type: Boo…

ChatGPT帮忙写一篇Font Awesome的文章,效率有多高?(附加Font Awesome 图标无法正确显示解决方法)

目录 一、ChatGPT撰写文章 二、图标无法正确显示以及解决方法 一、ChatGPT撰写文章 Font Awesome是一种流行的图标字体和CSS工具包,它允许开发人员轻松地将可伸缩向量图标和社交徽标添加到他们的网站。它由Dave Gandy于2012年创建,并且自那时以来已经增…

excel饼图 将图例放在图中对应位置并显示百分比

环境:win 10,Office 2019 1、选中数据,插入饼图 发现图例都在下方,不便于查看。希望让图例位于图中对应的位置。 2、 在饼图上点击右键,点击“添加数据标签”: 随后图中会显示数据: 3、在饼图上…

Qt使用大图标工具栏、svg格式图标

关键代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QToolBar> #include <QMessageBox>class QMenuBar; class QToolBar; MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-…

Qt 的 icon图标设置

图标设置可以分为exe执行文件图标、程序窗口图标和任务栏显示图标。程序窗口图标和任务栏显示图标显示一样。 exe图标设置方法&#xff1a; 在pro工程文件内添加如下&#xff1a; RC_ICONS logo.ico //logo.ico 为图标文件 程序窗口图标和任务栏显示图标设置方法&a…

小程序根据不同用户,显示不同tabBar

小程序根据不同用户&#xff0c;显示不同tabBar&#xff08;官方自定义 tabBar&#xff09; 现有需求&#xff1a;小程序用户有2种身份&#xff08;vip&#xff0c;普通用户&#xff09; 微信小程序全局文件app.json里面的"tabBar"里面的list只能放置2-5个&#xff…

android 大屏图表 MPAndroidChart 饼状图 饼图,圆形统计图

//图表库implementation com.github.PhilJay:MPAndroidChart:v3.1.0X轴&#xff1a;XAxis Y轴&#xff1a;YAxis 图例&#xff1a;Legend 描述&#xff1a;Description 限制线&#xff1a;LimitLine 显示的视图&#xff1a;MarkerView (就是选择中的时候显示的样子) 饼图英文…

使用iconfont中图标后,大小显示不一致

能看到这篇文章的小伙伴们&#xff0c;大概率是遇到了与博主相同的问题了&#xff0c;组件库中的icon&#xff08;图标&#xff09;不满足需求&#xff0c;使用iconfont 中的图标&#xff0c;但是引入看到效果之后&#xff0c;瞬间就是一句国粹。。。 咱们看下面&#xff1a;明…

未来不会使用chatgpt的人会被淘汰,那么国内不用梯子如何使用chatgpt?

ChatGPT 可以在提高工作效率方面提供多方面的帮助。以下是其中的一些例子&#xff1a; 时间管理&#xff1a;通过使用 ChatGPT&#xff0c;你可以设置提醒事项&#xff0c;安排会议&#xff0c;以及进行其他与时间管理相关的任务。 研究和信息收集&#xff1a;ChatGPT 可以用来…