可观测性:使用通用性能分析优化工作负载

概述

Elastic 可观测性简介

更深入地了解 Elastic 可观测性,以及如何使用 Elastic Cloud 摄取、查看和分析来自应用程序的客户日志。了解如何自信地现代化应用程序并采用云。


让我们开始吧

创建 Elastic Cloud 帐户

访问 cloud.elastic.co 并创建帐户后,请观看此视频,了解如何在全球 50 多个支持的区域中启动您的第一个 Elastic 堆栈。

Create_Deployment_8.13.png

部署完成后,在 **可观测性** 选项卡下,选择 **使用通用性能分析优化我的工作负载**。

olly_tiles.png

现在,系统将提示您添加数据以开始。选择 **设置通用性能分析**。

universal-profiling-set-up.png

如果这是您第一次使用通用性能分析代理,系统将提示您进行设置。只需按照以下说明操作。

kubernetes-universal-profiling-agent-install-start.png

以下是在 Microsoft Azure AKS 集群中运行上述命令的示例。

kubernetes-universal-profiling-agent-install-in-azure-cloud-shell.png

数据开始显示后,导航到左侧菜单中 **通用性能分析** 下的 **堆栈跟踪**。查看堆栈跟踪是为了了解哪些内容消耗了最多的时间。将鼠标悬停在图表上以查看各个线程的波形模式。

堆栈跟踪视图按线程、主机、Kubernetes 部署和容器对分组的堆栈跟踪图表进行显示。它可用于检测线程中的意外 CPU 峰值,并深入到更短的时间范围内,使用火焰图进行进一步调查。

您将在大约 3 分钟或更短时间内开始看到数据。查看此 博客,了解更多关于如何阅读堆栈跟踪的信息。

kubernetes-universal-profiling-after-agent-install.png


使用 Elastic 可观测性

分析火焰图

接下来,导航到左侧菜单中 **通用性能分析** 下的 **火焰图**。本质上,性能分析等同于火焰图。它表示,从左到右阅读,最昂贵的代码或最昂贵的函数是什么。

火焰图页面是您最有可能花费最多时间的地方,尤其是在调试和优化时。我们建议您使用此 博客 来识别性能瓶颈和使用火焰图的优化机会。要寻找的三个关键要素 - 条件是宽度、层次结构和高度。

  • 从左到右水平扫描,重点关注 CPU 密集型函数的宽度。
  • 垂直检查以检查堆栈并发现瓶颈。
  • 寻找高耸的堆栈以识别代码中潜在的复杂性。

kubernetes-universal-profiling-flame-graph-after-agent-install.png

要开始探索,建议将其限制在特定线程、主机、部署或容器中。只需在搜索栏中输入它即可。

**注意:**Elastic 通用性能分析是业界唯一提供从内核到本机代码到高级编程语言的混合语言可见性的持续性能分析解决方案,无需在主机上使用调试符号。

universal_differential_flamegraph.png

在分析图表时,请注意,线条越长,它在 CPU 时间方面花费的时间就越多。如果您选择其中一条线,您将获得一个带有更多详细信息的弹出窗口。**函数** 是当时执行的代码行,您还将看到其他关键详细信息,例如 **总 CPU**、**年度 CO2** 和 **年度美元成本**。

universal_differential_details.png

比较更改前后的代码

差异火焰图允许您在将代码推送到生产环境之前比较更改前后的代码。青绿色表示改进,红色表示回归。

在下图中,您可以看到优化的容器根据颜色更好。

universal_differential_good.png

如果您选择 **获得整体性能** 旁边的下拉箭头,您可以看到整体改进值。

universal_differential_good_value.png

接下来,如果您选择**交换两侧**图标(两个容器之间带有箭头指向相反方向的图标),您会发现恢复到优化前的容器代码会导致回归。

universal_differential_bad.png

如果您选择**整体性能下降**旁边的下拉箭头,您可以看到整体回归值。

universal_differential_bad_value.png

接下来,如果您选择**转到监控**,您将立即获得一些高级见解。这些图表将在更多测试通过后开始渲染,但您可以快速查看可用性、执行测试的持续时间、时间线,还可以深入查看瀑布图。要深入了解,请单击**查看测试运行**下的图标。


下一步

感谢您抽出时间使用 Elastic Cloud 收集和分析日志。如果您是 Elastic 的新手,请务必注册一个免费的14 天试用

此外,当您开始使用 Elastic 时,请了解一些您在环境中部署时应管理的操作、安全和数据组件


可观察性资源