Kubernetes应用性能分析工具Kubectl Flame怎么用

发布时间:2021-10-28 18:59:59 作者:柒染
来源:亿速云 阅读:135

这期内容当中小编将会给大家带来有关Kubernetes应用性能分析工具Kubectl Flame怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

什么是性能分析?

性能分析是分析应用程序性能来改进代码质量的常用方法,最流行的可视化性能分析方法是生成火焰图。

Kubernetes应用性能分析工具Kubectl Flame怎么用

基于 Spring 框架的 Java 应用的火焰图

y轴是堆栈深度,x轴跨越样本总体。每个矩形都是一个函数,其中宽度显示它出现的频率,从左到右的排序并不重要 (堆栈按字母顺序排序)。

Kubernetes 上的性能分析

性能分析是一项较为复杂的任务,大多数探查器有两个主要问题:

选择正确的探查器可能会解决这些问题,但是这需要仔细去进行研究,并且通常取决于编程语言和操作系统。

在 Kubernetes 集群中运行的应用程序上执行分析时,会变得更加困难。需要部署一个包含配置文件修改的新容器镜像,而不是当前正在运行的容器。此外,当应用程序重新启动时,某些性能问题可能会消失,这就使得调试变得困难。

Kubectl flame

Kubectl Flame 是一个 kubectl 插件,可以以较低的开销生成火焰图?来分析应用程序性能,无需进行任何应用程序修改或停机。

项目仓库地址:https://github.com/VerizonMedia/kubectl-flame

安装

可以通过 Krew 来安装 kubectl flame 插件,一旦安装了 Krew,就可以通过如下命令进行安装:

$ kubectl krew install flame

使用要求

运行原理

kubectl-flame 通过在与目标容器相同的节点上启动一个探查器来启动性能分析,大多数探查器将与目标容器共享一些资源:比如通过将 hostPID 设置为 true 来启用 PID 命名空间共享,通过挂载 /var/lib/docker 并查询 overlayFS 来启用文件系统共享。

在后台kubectl-flame使用 async-profiler 来为 Java 应用程序生成火焰图,通过共享/tmp文件夹与目标 JVM 进行交互,Golang 则支持基于 ebpf 分析,Python 支持基于 py-spy 进行分析。

Kubernetes应用性能分析工具Kubectl Flame怎么用

kubectl flame 概述

使用实例

 1.  分析 Kubernetes Pod

分析 Java 应用 mypod 1分钟,并在将火焰图保存到 /tmp/flamegraph.svg:

$ kubectl flame mypod -t 1m --lang java -f /tmp/flamegraph.svg

  2.  分析基于 alpine 的容器

在基于 alpine 的容器中分析 Java 应用程序需要使用 --alpine 标志:

$ kubectl flame mypod -t 1m -f /tmp/flamegraph.svg --lang Java --alpine

注意:仅 Java 应用程序需要此 --alpine 标志,而 Go 分析则不需要该标志。

  3.  分析 sidecar 容器

包含多个容器的 Pod 需要将目标容器指定为参数:

$ kubectl flame mypod -t 1m --lang go -f /tmp/flamegraph.svg mycontainer

上述就是小编为大家分享的Kubernetes应用性能分析工具Kubectl Flame怎么用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. 初识Kubernetes(K8s):kubectl命令使用详
  2. Kubernetes中的kubectl怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes kubectl flame

上一篇:在LINUX系统中Fedora yum管理工具的使用分析

下一篇:Mysql数据分组排名实现的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》