问题标签 [flamegraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

java - java应用程序响应太长,这个火焰图意味着什么?

这里是一个java应用,接受base64上传的图片,接下来通过base64请求另一个服务,但是响应时间太长,4-20s以上。

图表意味着什么?

这是java应用,接受base64上传的图片,接下来通过base64请求另一个服务,但是响应时间太长,4-20s以上

0 投票
1 回答
786 浏览

java - 为整个 Java 程序执行生成火焰图

我正在尝试使用perf-map-agent为 Java 程序生成火焰图。我知道您可以使用它来记录正在运行的进程的数据。我还发现您可以使用Flame Graph 目录中的脚本。我找到了Brendan Gregg 的示例以及说明这一点的 Stack Overflow 帖子。但是,在这些示例中,Java 进程都没有作为参数给出(这意味着 perf 收集整个系统的堆栈跟踪)。perf-java-record-stackjmapsperf record

我想记录整个程序执行的分析数据(最好不要别的)。有没有办法做到这一点?我努力了:

答案是:

始终使用相同的 PID。此 PID 是一个正在运行的进程,而不是我尝试为其记录数据的进程。

0 投票
1 回答
230 浏览

python - 从 trie 构造火焰图

我在定期生成的 trie 中有一些统计信息。我想生成关于两次尝试之间差异的火焰图。我怎么做?

0 投票
1 回答
355 浏览

java - 检测 java web 应用程序中 cpu 使用率 15% 的原因

最近我们在我们的 java web 应用程序中升级了 hibernate jars。此次升级后,我们发现 CPU 使用率增加了 15-20%。之前和之后的唯一区别是hibernate jar版本。我需要确定 CPU 使用率增加的根本原因。我拍摄了 jvisualvm cpu profiler 快照并将它们转换为火焰图。从两个火焰图中,我看到堆栈跟踪是相同的,但 cpu % 存在差异。

在升级前后执行了具有相同用户负载和用例的负载测试。两个应用程序部署之间的唯一区别是hibernate jars。一个版本具有休眠 4.3.5,另一个具有 5.4.2。火焰图并没有指出休眠功能是导致 CPU 使用率增加的原因,因此我很困惑如何继续进行分析。

我需要一些关于如何比较两个火焰图并解决 cpu 使用率增加的根本原因的指导。请在这些链接中找到火焰图。

采样 5 分钟

之前的火焰图 - https://filebin.net/sxagcfs6lmtie654/old_report_5min.html?t=k4t2i379

之后的火焰图 - https://filebin.net/sxagcfs6lmtie654/report_5min.html?t=k4t2i379

之前的分析器快照 - https://filebin.net/sxagcfs6lmtie654/Old_Hibernate_Sampling_5Minute.nps?t=fvno95sr

之后的探查器快照 - https://filebin.net/sxagcfs6lmtie654/New_Hibernate_Sampling_5Minute.nps?t=fvno95sr

采样 30 分钟

之前的火焰图 - https://filebin.net/sxagcfs6lmtie654/old_report_30min.html?t=ttb7s4k4

之后的火焰图 - https://filebin.net/sxagcfs6lmtie654/report_30min.html?t=ttb7s4k4

之前的分析器快照 - https://filebin.net/sxagcfs6lmtie654/OldHibernateLibrary_30min.nps?t=fvno95sr

之后的探查器快照 - https://filebin.net/sxagcfs6lmtie654/LatestHibernateLibrary_30min.nps?t=fvno95sr

0 投票
0 回答
1080 浏览

go - 进程在 select.go 上花费太多时间阻塞而没有明确的相应操作

我试图找出我的程序的瓶颈。根据基准测试结果,该进程在 runtime/select.go 的第 485 行被阻塞了相当长的时间,这是由 http.(*persistConn).writeLoop 引起的,但我不知道根本原因。

我试图分析我程序中的http操作。但是根据火焰图,我由几个 goroutine 并行执行的 url 获取操作并没有成为一个重大负担。我也没有在我的程序中使用“选择”

这是“源”视图中的 pprof 输出:

阻塞火焰图

我想知道这个成本的可能原因或分析这个成本原因的方法。

0 投票
0 回答
109 浏览

linux - 如何在 perf 配置文件上启用 kubelet 调用堆栈的可视化?

我正在尝试对问题进行根本原因分析。cpu 性能配置文件看起来像这样 - CPU 配置文件

显然,kubelet 和 dockerd 使用了更多时间。但下面的堆栈有 [未知] 符号。如何启用整个堆栈的可视化,以便找到 cpu 花费时间的 go-routines?

更新 1: 按照@coderanger 的建议,我确实使用手动构建二进制文件 - 使所有 GOLDFLAGS=""

而且我仍然缺少一些带有性能分析的符号- 在此处输入图像描述

任何帮助表示赞赏!

0 投票
0 回答
24 浏览

javascript - 关于chrome devltools javascript profiler火焰图的问题,聚合时间小于总时间

总时间和总时间在图中加了下划线。 devtool 火焰图

这种情况是什么意思?

0 投票
0 回答
44 浏览

performance - 如何在没有最小化名称的情况下记录性能火焰图?

我们正在尝试在生产环境中记录性能数据,但鉴于一切都已缩小,生成的火焰图使用缩小后的名称。

火焰图有没有办法使用未缩小的名称?我一直在尝试使用源地图,但它似乎不起作用。

想法?

0 投票
0 回答
155 浏览

sampling - 如何分析 Web 应用程序的火焰图

我对采样概念有一个简要的了解,并观看了一些火焰图视频。开始为电子商务 Web 应用程序(由Odoo Monolic提供支持,Python带有 Werkzeug WSGI 服务器)进行性能分析,我有一些问题。

  1. 采样时,我是否必须在应用程序上产生负载才能很好地理解火焰图?但是如果我产生更多的负载,多个请求可能会命中同一个函数 A(例如),这意味着函数 A 大部分时间都花在 CPU 上,所以我不应该假设函数 A 性能不好?

  2. 如何为 Web 应用程序收集样本:由于它是 Web 应用程序,它具有注册、销售、购买等多种功能。我是否按功能按请求收集样本?像下面

    • 启动应用程序
    • 开始采样
    • 仅访问注册页面并做事
    • 停止采样

    这样,我只能根据单个请求为每个功能生成样本/火焰图

  3. 我是否已经多次完成整点 2 以更好地了解应用程序性能

  4. 如果我们考虑整个应用程序,有多个代码路径,取决于请求,一些代码路径(例如以上几点)花费大量时间在 CPU 上,哪些是有意义的,如何分析哪些是坏功能(花费大量时间在 CPU 上)

我相信我在采样概念和应用程序性能监控方面遗漏了一些要点。有人可以指导我吗?

如何解释采样/火焰图以及如何采样。

0 投票
1 回答
1134 浏览

performance - 从源代码/从头开始编译 linux perf 工具及其依赖的内核模块

我正在使用 linux perf 工具来分析共享库。虽然它在 Ubuntu 上运行良好,但现在我想在嵌入式 linux 上运行它,我不能使用 apt-get 在嵌入式 linux 上安装 linux perf 工具。这就是为什么我必须从头开始编译所有内容。

任何人都可以指导如何从头/源代码编译 linux perf 工具和依赖的内核模块。

任何帮助将不胜感激。

谢谢阿尔斯兰阿里