自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kubernetes Pod應(yīng)用性能分析工具 Kubectl Flame

系統(tǒng)
在Kubernetes集群中運行的應(yīng)用程序上執(zhí)行分析時,甚至更加困難。需要部署一個包含配置文件修改的新容器映像,而不是當(dāng)前正在運行的容器。此外,當(dāng)應(yīng)用程序重新啟動時,某些性能問題可能會消失,這使調(diào)試變得困難。

 什么是性能分析?

性能分析是分析應(yīng)用程序性能以改善代碼段性能的行為??梢暬渲梦募⒖焖僮R別性能問題的最流行方法之一是生成 “火焰圖”。例如下圖


y軸是堆棧深度,x軸跨越樣本總體。每個矩形都是一個函數(shù),其中的寬度表示它在配置文件中出現(xiàn)的頻率。從左到右的順序并不重要(堆棧按字母順序排序)。

在Kubernetes上如何分析應(yīng)用性能?

應(yīng)用性能分析是一項艱巨的任務(wù)。大多數(shù)探查器有兩個主要問題:

  • 需要修改應(yīng)用程序。通常,可以通過將標(biāo)志添加到執(zhí)行命令或?qū)⒁恍┬阅芊治鰩鞂?dǎo)入代碼中來實現(xiàn)。
  • 由于在性能分析過程中會嚴重影響性能,因此通常避免在產(chǎn)品中進行性能分析。

在Kubernetes集群中運行的應(yīng)用程序上執(zhí)行分析時,甚至更加困難。需要部署一個包含配置文件修改的新容器映像,而不是當(dāng)前正在運行的容器。此外,當(dāng)應(yīng)用程序重新啟動時,某些性能問題可能會消失,這使調(diào)試變得困難。

在Kubernetes應(yīng)用性能分析解決方案?

Kubernetes 中可以使用 Kubectl Flame 分析 Pod 應(yīng)用性能。Kubectl Flame 是一個kubectl插件,可以使在Kubernetes中運行的分析應(yīng)用程序獲得流暢的體驗,而無需進行任何應(yīng)用程序修改或停機。另外,kubectl flame的目標(biāo)是通過最大程度地降低性能損失來實現(xiàn)生產(chǎn)友好。

源碼地址:https://github.com/VerizonMedia/kubectl-flame

運行原理

kubectl flame 在與目標(biāo)容器相同的節(jié)點上啟動 Kubernetes Job。在后臺kubectl-flame使用async-profiler來為Java應(yīng)用程序生成火焰圖。通過共享/tmp文件夾與目標(biāo)JVM進行交互。Golang支持基于ebpf分析。Python支持基于py-spy。

使用要求

  • 支持的語言:Go,Java(任何基于JVM的語言)和 Python
  • 使用Docker作為容器運行時的Kubernetes集群(已在GKE,EKS和AKS上測試)

安裝

  1. $ kubectl krew install flame 

使用

分析 Kubernetes Pod

分析 Java 應(yīng)用 mypod 1分鐘,并在將火焰圖保存到 /tmp/flamegraph.svg

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

分析基于 alpine 操作系統(tǒng)的容器

在基于 alpine 的容器中分析 Java 應(yīng)用程序需要使用 --alpine 標(biāo)志

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

注意:僅 Java 應(yīng)用程序需要此 --alpine 標(biāo)志,而 Go 分析則不需要該標(biāo)志。

分析 sidecar 容器

包含多個容器的 Pod 需要將目標(biāo)容器指定為參數(shù)

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

分析 Golang 多進程容器

在包含多個進程的Pod中對Go應(yīng)用程序進行性能分析需要通過 --pgrep 標(biāo)志指定目標(biāo)進程名稱:

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

Java分析假定進程名稱為java。--pgrep 如果您的進程名稱不同,請使用標(biāo)志。

參考鏈接

https://github.com/VerizonMedia/kubectl-flame

https://blog.csdn.net/weixin_26746861/article/details/108935182

 

責(zé)任編輯:姜華 來源: YP小站
相關(guān)推薦

2021-04-22 09:20:20

KubernetesKubectl FlaLinux

2021-08-09 16:39:52

工具JVM剖析

2024-03-04 08:00:00

Java開發(fā)

2013-03-27 10:01:53

網(wǎng)絡(luò)應(yīng)用檢測工具

2023-06-09 07:45:29

Kuberneteskubectl

2015-07-27 11:00:33

應(yīng)用性能監(jiān)控工具APM

2014-08-04 16:38:37

移動應(yīng)用

2013-08-22 10:15:32

應(yīng)用性能監(jiān)控系統(tǒng)管理

2019-10-10 09:01:46

監(jiān)控服務(wù)器應(yīng)用

2023-07-19 15:45:47

ReactDOM輕量級

2012-10-09 09:43:50

WLAN優(yōu)化無線局域網(wǎng)WLAN

2020-03-30 14:00:21

Flutter前端代碼

2015-01-09 10:41:56

Cloud Trace性能檢測

2015-12-11 14:02:02

php應(yīng)用

2015-07-24 16:12:58

應(yīng)用性能管理

2015-08-27 13:44:25

APM

2022-05-25 16:59:27

Kubectl-IcKubernetesPod

2015-04-03 17:35:50

移動應(yīng)用性能聽云

2014-08-08 15:36:39

Apdex

2009-09-21 16:40:57

點贊
收藏

51CTO技術(shù)棧公眾號