ali arthas 火焰图_使用arthas 生成火焰图分析jvm

news/2024/7/7 10:35:42

arthas 是阿里巴巴开源的强大的jvm 应该分析工具,以下是使用arthas 生成jvm 火焰图的一个学习

项目使用docker-compose 运行,对于生成的火焰图使用nginx 提供一个访问入口

环境准备

docker-compose 文件

version: "3"

services:

web:

image: openresty/openresty:alpine

ports:

- "8090:80"

volumes:

- "./flamegraph:/opt/mywebs"

- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"

app:

build: ./

cap_add:

- ALL

ports:

- "8080:8080"

volumes:

- "./flamegraph:/usr/local/tomcat/arthas-output"

tomcat 集成arthas dockerfile

FROM tomcat

# copy arthas

COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas

nginx config

worker_processes 1;

user root;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

lua_code_cache off;

lua_need_request_body on;

gzip on;

resolver 127.0.0.11 ipv6=off;

real_ip_header X-Forwarded-For;

real_ip_recursive on;

gzip_min_length 2k;

gzip_buffers 4 16k;

log_format compression '$remote_addr - $remote_user [$time_local] '

'"$request" $status $bytes_sent '

'"$http_referer" "$http_user_agent" "$gzip_ratio"';

gzip_comp_level 4;

gzip_types text/plain text/css image/png application/javascript image/jpeg image/gif;

server {

listen 80;

server_name _;

charset utf-8;

default_type text/html;

root /opt/mywebs;

location / {

default_type text/plain;

autoindex on;

}

location = /empty {

empty_gif;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

使用

启动

docker-compose up -d

进入tomcat 启动arthas

docker-compose exec app sh

java -jar /opt/arthas/arthas-boot.jar

选择进程id 默认为1

开启profiler

生成火焰图

profiler start

一个简单的压力测试

ab -n 20000 -c 200 http://localhost:8080/

停止profiler

profiler stop

查看火焰图

说明

以上是一个简单的学习使用,开启容器的profiler 需要添加cap 为了简单,添加了all,arthas 功能很强大,是一把利器,同时集成到docker

镜像中,可以方便的分析一些性能瓶颈

参考资料

火焰图分析openresty性能瓶颈

注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

用 CPI 火焰图分析 Linux 性能问题

https://yq.aliyun.com/articles/465499 用 CPI 火焰图分析 Linux 性能问题   yangoliver 2018-02-11 16:05:53 浏览1076 ...

火焰图分析CPU性能问题

1.找出应用程序或内核消耗CPU的PID 2.执行perf record 命令,记录该PID的行为 perf record -a -g -p 14851 -- sleep 30 --30秒后退出 3. ...

perf + Flame Graph火焰图分析程序性能

1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...

[转]perf + 火焰图分析程序性能

1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...

perf + 火焰图分析程序性能

1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...

Skynet服务热点火焰图分析

最近花了一周时间对场景服务进行热点分析,利用以前的火焰图工具做了一点微小的贡献,分享下心得(仓库地址在https://github.com/spin6lock/skynet_systemtap_set ...

使用FlameGraph火焰图分析JAVA应用性能

开源项目推荐 Pepper Metrics是我与同事开发的一个开源工具(https://github.com/zrbcool/pepper-metrics),其通过收集jedis/mybatis/ht ...

Linux下用火焰图进行性能分析【转】

转自:https://blog.csdn.net/gatieme/article/details/78885908 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...

随机推荐

iOS 字符串删除 DOM

iOS  string 删除 包含的 DOM NSMutableString *mutableString = [NSMutableString stringWithString:responseSt ...

Android自定义控件(二)

这一篇主要来讲一下自定义控件中的自定义viewgroup,我们以项目中最常用的下拉刷新和加载更多组件为例 简单介绍一下自定义viewgroup时应该怎么做. 分析:下拉刷新和加载更多的原理和步骤 自定 ...

HUST 1017 - Exact cover (Dancing Links 模板题)

1017 - Exact cover 时间限制:15秒 内存限制:128兆 自定评测 5584 次提交 2975 次通过 题目描述 There is an N*M matrix with only 0 ...

继续寻找app开发的技术方案

大概12年下半年开始,才有app开发已经来到身边的感觉. 但也一直只是感觉,没想到自己得亲身上阵. 由于要一个人做(帮朋友倒腾倒腾),而且要跨平台,而且前后台都要弄,而且时间有限. 最终选了web方式 ...

python 校招信息爬虫程序

发现一个爬虫程序,正在学习中: https://github.com/lizherui/spider_python

使用Xcode插件,让iOS开发更加便捷

在iOS开发过程中,写注释是一项必不可少的工作.这不仅有助于自己对代码整理回顾,而且提高了代码的可读性,让代码维护变得容易.但是,写注释又是一项枯燥的工作.我们浪费了大量的时间在输入/*,*,*/这样 ...

CDI services--Event(事件)

Cdi中的event事件,是整个CDI的精华所在之一.其有点类似设计模式中的观察者模式.但也有不同的地方.如下3点: 不仅是生产者(producers)从观察者(observers)解耦.观察者也从生 ...

瀑布 敏捷 精益 devops

敏捷:  分工角色  大项目分小项目   每个节点时间设置里程碑 Scrum实施的核心可以概括为“化繁为简”,从几个维度解释下: 团队角色的定义,将团队人员定义为三个角色,Scrum Master(主 ...

js实现字体闪烁

function changeColor(){ var color="#f00|#0f0|#00f|#880|#808|#088|yellow|green|blue|gray"; ...

python学习之——import sys模块

(1)sys.argv sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突.另外,它也清晰地表明了这个名称是sy ...


http://www.niftyadmin.cn/n/612060.html

相关文章

一个遮罩层怎么遮罩两个图层_PPT动画特效制作案例:遮罩动画,你看不到我!...

前段时间,写了一些动画特效制作,其中有个遮罩动画,大家都觉得很不错!可能,没有看过我文章的朋友,还在想:遮罩动画是什么鬼?看个例子你就知道了,类似于TED演讲的开头或者钢…

只有1kb的清理软件_1kb病毒专杀工具下载

1KB文件夹快捷方式病毒清除工具是一款专门为清理那些1kb文件类型的病毒而推出的电脑杀毒工具,帮助用户快速寻找系统中的隐藏病毒文件,极大程度上消除了病毒隐患,喜欢就试试吧!软件介绍:1KB文件夹快捷方式病毒清除工具&…

SQL note

structured query language综合的、通用的、功能极强的关系数据库语言包括数据定义(DDL)-create、数据操纵(DML)-insert、delete、update、select数据控制-grant是单进程多线程的关系性数据库sql特点:1、一体化的语言,2、统一的语法结构、多种使用方式,3、高度非过程…

sap 标准委外和工序委外_「SAP技术」SAP MM 委外加工采购流程里副产品的收货

「SAP技术」SAP MM 委外加工采购流程里副产品的收货委外加工采购流程,在很多SAP项目里都有。其标准流程是: 我方因受限于生产工艺或者生产产能不足,或者降低生产成本的缘故,需要寻找外部加工商的帮助。由我方提供部分或者全部的原材料给到委外…

spring service 层 impl_Spring 程序间的耦合和解耦

1、耦合大家可以看以下代码,jdbc的注册驱动以及连接数据库:在这里的第一行代码,大家可以看到,这就有很大的耦合性关系,因为DriverManager依赖于new com.mysql.jdbc.Driver()对象,connection对象依赖于Drive…

.ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-11...

说明:本系列教程改编自raywenderlich.com中的iOS Apprentice系列,有需要的童鞋请移步到这里购买英文版原教程:https://store.raywenderlich.com/products/ios-apprentice 欢迎继续我们的学习。在上一课的内容中,我们重温了MVC的概…

劳力士格林尼治多少价格_2020年11月劳力士手表最新官网报价

点击“蓝字”关注我们劳力士是一个拥有百年历史的制表品牌,自诞生以来始终以“简单、实用、精准、耐用”而著称。在腕表市场中有非常高的名气,甚至不了解手表的人也都知道这么品牌。劳力士手表每个系列都有各自不同的优势和特点,下面就让小编…

怎樣制作线段动画_让JOYamp;DOGA走进现实 3D实景合成动画小教程

01 前言实景合成动画是将虚拟的角色形象与真实拍摄的景物相结合的创作手法,我们部门制作的《蓝小方搬家视频》以及《故宫联名中秋礼盒视频》,都运用了实景合成的技术。它能让JOY&DOGA们打破次元壁,走到我们的身边,与现实的景物…