Skip to content

Commit

Permalink
fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Dec 28, 2024
1 parent 323a7df commit bf060be
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 94 deletions.
10 changes: 5 additions & 5 deletions Observability/profiles.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# 9.3.4 性能剖析 Profiling

熟悉 Golang 的开发者对 pprof 工具一定不陌生。进行软件性能调试和分析时,利用 pprof 提供的 CPU 和内存分析功能,深入了解 Golang 函数的执行时间和内存使用情况
熟悉 Golang 的工程师对 pprof 工具一定不陌生。借助 pprof 提供的 CPU 和内存分析功能,工程师能够深入了解 Golang 函数的执行时间、内存使用情况,从而分析、优化软件性能

在可观测性领域,性能剖析(Profiling)的作用与 Go 语言中的 pprof 类似,**都是对运行中的程序进行动态分析,生成程序运行时的详细数据(即 Profiles),全面了解程序资源的使用情况,确定代码和性能瓶颈之间的关联**
可观测性领域内的性能剖析(Profiling)的目标与 Golang 中的 pprof 类似,两者皆是对运行中应用动态分析、生成详细的运行数据(Profiles),帮助工程师全面了解软件资源使用情况,确定代码和性能瓶颈之间的关联。

Profiles 数据一般表示成火焰图、堆栈图或内存分析图等形式,是从“是什么”到“为什么”这一过程中至关重要的依据。例如,通过链路追踪发现延迟产生的位置,然后依靠 Profiles 生成的火焰图进一步定位到具体的代码行。2021 年,国内某站崩溃,工程师们使用火焰图观察到到一处 Lua 代码存在异常,最终定位到问题的源头[^1]
Profiles 数据通常以火焰图、堆栈图或内存分析图等形式呈现,是从“是什么”到“为什么”这一过程中重要的依据。例如,通过链路追踪识别出延迟(是什么)的位置,然后根据火焰图进一步定位到具体的代码行(为什么)。2021 年,国内某网站崩溃,工程师分析火焰图发现 Lua 代码存在异常,最终成功定位到问题源头[^1]

:::center
![](../assets/lua-cpu-flame-graph.webp)<br/>
Expand All @@ -22,7 +22,7 @@ Profiles 数据一般表示成火焰图、堆栈图或内存分析图等形式

:::

Profiles 数据通常由多种不同的分析器(Profiler)生成,以下是一些常见的分析器类型
Profiles 数据包括多种类型,由不同的分析器(Profiler)生成,常见分析器如下

- **CPU 分析器**:用于分析哪些函数或方法在运行时消耗了最多的 CPU 时间。例如,通过 CPU Profiler,我们可以确定某个算法的优化是否减少了 CPU 使用率。
- **堆分析器(Heap Profiler)**:用于监测程序的内存使用情况,帮助发现内存泄漏或不必要的内存分配。例如,在 Java 应用中,Heap Profiler 可以帮助找到导致内存溢出的具体对象或数据结构。
Expand All @@ -31,7 +31,7 @@ Profiles 数据通常由多种不同的分析器(Profiler)生成,以下是
- **I/O 分析器**:分析 I/O 操作的性能,如用来分析文件读写操作的延迟或网络请求的耗时,从而优化数据传输效率。
- **特定编程语言的分析器**:如 JVM Profiler,专门分析运行在 Java 虚拟机上的应用程序。

过去,由于分析器的资源消耗较大,工程师们往往仅在紧急情况下才会临时使用它们。随着低开销分析技术的发展,如编程语言层面的 Java Flight Recorder 和 Async Profiler,以及操作系统层面的 systemTap 和 eBPF 技术的出现,让生产环境中的持续性能分析(Continuous Profiling)变得越来越可行,捕获偶发故障的现场快照也变得更加容易
过去,由于分析器资源消耗较高,工程师通常仅在紧急情况下临时启用它们。随着低开销分析技术的兴起,如编程语言层面的 Java Flight Recorder 和 Async Profiler 技术、操作系统层面的 systemTap 和 eBPF 技术,让生产环境中的“持续性能分析”(Continuous Profiling)逐渐成为现实,捕获“疑难杂症”的现场快照也变得更加容易

[^1]: 参见《2021.07.13 我们是这样崩的》https://www.bilibili.com/read/cv17521097/

87 changes: 0 additions & 87 deletions application-centric/ArgoCD.md

This file was deleted.

2 changes: 1 addition & 1 deletion application-centric/OAM.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 10.3.5 OAM
# 10.3.4 OAM

2019 年 10 月,阿里云与微软在上海 QCon 大会上联合发布了开源项目 Open Application Model(OAM)。该项目以“关注点分离”(Separation of Concerns)为核心理念,为云原生应用的完整 DevOps 流程提供了高度抽象和封装。

Expand Down
2 changes: 1 addition & 1 deletion application-centric/Operator.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 10.3.4 Operator
# 10.3.3 Operator

Operator 的概念由 CoreOS 于 2016 年提出,它并非一个具体的工具或系统,而是一种封装、部署和管理 Kubernetes 应用的方法,尤其适合需要特定领域知识的复杂有状态应用,如数据库、分布式缓存和消息队列等。

Expand Down

0 comments on commit bf060be

Please sign in to comment.