可观测性是一种通过分析系统输出结果并推断和衡量系统内部状态的能力。谈及可观测性一般包含几大功能:监控指标、链路追踪、告警日志,及 Continues Profiling 持续剖析能力。对于操作系统可观测,监控指标可以帮助查看各个子系统(IO、网络、内存、调度等)的运行状态;链路追踪可以查看系统从用户态到内核态、容器到宿主机、再到网卡等整条链路的处理延迟;而持续剖析能力可以分析当前系统上各个任务的热点信息,找到性能瓶颈点;日志主要是通过 dmesg 等系统日志及用户日志分析当前系统运行出错情况。
龙蜥社区智能运维平台 SysOM 实现了在 CPU 和 GPU 侧的可观测体系,以帮助您对系统可观测生态的全面认识,特别是在大模型训练和推理过程中,内部广泛使用的基于 AI 火焰图的 CPU 及 GPU 性能追踪的融合分析能力。我们将通过系列文章解读 SysOM 可观测体系建设,本文首先介绍 CPU 侧的可观测体系,包括 livetrace 的火焰图功能。下一篇文章,我们将重点介绍 GPU 侧的观测体系及 AI 火焰图功能。
SysOM 整体架构
SysOM 的可观测体系,包括了对 JAVA、Mysql、Nginx 等应用的 CPU 系统侧的持续剖析,及对 Pytorch、VLLM 等训练和推理框架(Python 语言)及 GPU 的持续剖析,我们分别称之为 livetrace 和 AI 可观测体系。上述体系都是基于 eBPF 实现的,AI 可观测也融合了 ptrace 动态注入的方式进行 hook。
首先我们来看看 SysOM 的整体架构。它包含节点端的采集和中心端的数据处理和前端展示三部分:
-
SysOM:一站式智能运维平台,中心端采用微服务的方式处理来自多个 region 的 Profiling 和监控数据。
-
系统工具集,处理来自中心端的请求和数据预处理,进行诊断结果汇总和 Profiling、监控数据上传。
-
Coolbpf:eBPF 开发框架和功能库,提供持续剖析采样,网络、IO、内存、调度等监控指标等功能。
SysOM 的主要功能包括对各类应用及操作系统内核的可观测,支持 JAVA、Python、C/C++、Go、Rust 等解释性语言和编译语言的持续剖析,尝试找到应用和系统内核之间的问题关联性,同时对训练和推理过程也具备 GPU Profiling 能力;还包括对 CPU 和 GPU 的监控能力;以及 CPU 和 GPU 的诊断能力。另外,针对系统宕机问题,提供了宕机分析及历史宕机问题的自动追踪功能。简单来说,SysOM 是集合了诊断、监控、持续剖析的 CPU 和 GPU 的系统智能运维平台。
(图/SysOM 整体架构)
SysOM 开发背景
在探讨 SysOM 可观测体系时,我们重点关注了持续性能剖析(Continuous Profiling)及其在 GPU 性能分析中的应用。这些技术在现代软件系统中扮演着至关重要的角色,尤其是在处理大规模分布式系统和高性能计算等环境时。
使用场景
持续性能剖析(Continuous Profiling)主要用于识别和优化应用程序的性能瓶颈。通过实时收集和分析运行时数据,开发人员可以深入了解代码执行路径、资源使用情况以及潜在的性能问题。这种技术特别适用于以下场景:
1. 微服务架构:在复杂的微服务环境中,持续性能剖析可以帮助快速定位跨服务调用中的性能瓶颈。
2. 云原生应用:对于部署在 Kubernetes 等容器编排平台上的应用,持续性能剖析能够提供细粒度的性能洞察,帮助优化资源利用率。
3. 高并发系统:在处理大量并发请求的应用中,持续性能剖析有助于发现并解决线程竞争、锁争用等问题。
GPU 性能剖析则专注于图形处理单元(GPU)的性能优化。随着人工智能、机器学习和高性能计算领域的发展,GPU 已经成为许多计算密集型任务的核心组件。GPU 性能剖析可以帮助开发人员:
1. 优化深度学习模型:通过分析 GPU 在训练和推理过程中的性能,优化模型结构和参数,提高计算效率。
2. 加速科学计算:在科学计算和工程仿真中,GPU 性能剖析有助于识别并消除计算瓶颈,提升整体计算速度。
3. 游戏和图形渲染:在游戏开发和图形渲染领域,GPU 性能剖析可以帮助优化渲染管线,提升帧率和视觉效果。
未来需求
随着技术的不断进步和应用场景的日益复杂,对性能剖析工具的需求也在不断增加。未来的性能剖析工具需要具备更高的精度、更低的开销和更强的可扩展性。具体来说:
1. 低开销监控:在不影响应用性能的前提下,实现高精度的数据采集和分析。
2. 多维度分析:支持从多个角度(如 CPU、内存、I/O、网络等)进行综合分析,提供全面的性能视图。
3. 集成与兼容性:与现有的 CI/CD 流水线、监控系统和日志管理工具无缝集成,形成统一的可观测性解决方案。
eBPF 技术
为了满足上述需求,扩展伯克利包过滤器(Extended Berkeley Packet Filter, eBPF)技术应运而生。eBPF 是一种高效的内核技术,能够在不修改内核源码的情况下,动态插入和执行沙箱化的程序。这使得 eBPF 成为实现低开销、高精度性能剖析的理想选择。
eBPF 的主要优势包括:
1. 低开销:eBPF 程序在内核中运行,减少了用户空间和内核空间之间的上下文切换,显著降低了性能开销。
2. 灵活性:eBPF 支持多种类型的事件跟踪,包括系统调用、网络包、文件操作等,为多维度性能分析提供了强大的支持。
3. 安全性:eBPF 程序在严格的沙箱环境中执行,确保了系统的安全性和稳定性。
4. 实时性:eBPF 能够实时收集和分析数据,为实时性能监控和故障排查提供了有力支持。
综上所述,基于 eBPF 在持续性能剖析和 GPU 性能剖析中具有广泛的应用前景,有望成为未来可观测性体系中的关键技术之一。
Coolbpf 功能库简介
SysOM 底层数据采集使用 Coolbpf 提供的能力。Coolbpf 建立在 CO-RE(一次编译到处运行)的基础之上,不仅保持了资源占用低和高可移植性的特点,还整合了 BCC 的动态编译特性,使其非常适合在生产环境中批量部署开发的应用。Coolbpf 开辟了一条新路径,采用了远程编译的理念,将用户的 BPF 程序上传到远程服务器进行编译,并返回编译后的 .o 或 .so 文件。这允许用户使用高级编程语言如 Python、Rust、Go 或 C 加载这些文件,进而在不同内核版本中安全运行。用户只需集中精力于功能开发,无须担心底层库(例如 LLVM、Python 等)的安装和环境配置,为 BPF 社区提供了一种新的探索和实践方式。此外,Coolbpf 还支持在 3.10 版本的内核上,通过内核模块的方式执行 BPF 程序,实现了在较高版本的内核上开发的应用程序能够无须修改直接在旧版本内核上运行的能力。
由于 eBPF 技术的普及和广泛应用于实际生产中,编译环境的搭建已经相当成熟,并且由于 3.10 等低内核版本已逐渐迁移到 4.19 甚至 5.10 版本,Coolbpf 的远程编译和低版本驱动特性将进一步弱化。未来 Coolbpf 将更聚焦于具体功能的提供,比如用户态 probe 功能、软件网络功能、profiling 等功能,通过 lib 库等形式服务于上层的特定应用,让开发者不再纠结于系统底层细粒度的指标采集,而更专注于自己业务的应用开发,直接调用 Coolbpf 的库函数就能满足业务需求。
Coolbpf 的功能架构如图所示,主要分为三个层次。
(图/Coolbpf 功能架构)
1. 接口层:提供给用户的接口,目前主要有 4 类接口,分别是:
①功能配置:配置和管理不同BPF功能或任务。可以通过用户接口或配置文件进行配置。
②资源配置:获取系统或应用程序的监控数据,这通常由BPF探针执行,并用于收集特定的性能指标或事件。
③事件监听:处理和转发采集到的事件到指定的处理模块。
④指标采集:协调和管理采集到的数据,确保它们按照计划进行分析和处理。
2. 核心组件:由三个核心模块组成,高级网络功能、零侵入式性能分析以及其他内核子系统。高级网络功能模块涵盖了链路追踪、网络性能指标监测以及网络异常检测等关键特性。无侵入式性能分析是 Coolbpf 的亮点之一,它基于 eBPF 技术,提供了强大的性能分析工具,并且已经实现了对 Java、Lua/LuaJIT、Python、C/C++、Rust、Go 等多种编程语言的支持。此外,其他内核子系统模块则包括了对 I/O、调度和内存等关键性能指标的监控。。
3. 基础组件:它提供了 Coolbpf 运行所需的底层支持,主要有:
①eBPF 加载库:加载和管理 eBPF 程序。
②编译组件:提供了编译环境。
③多语言支持:支持多种语言来扩展 Coolbpf 功能。
④BTF hub:BTF 集中库,用于管理和查找内核数据结构定义,确保 eBPF 字节码与内核数据结构的一致性。
Coolbpf 正如其名,非常”酷“地提升了 eBPF 的开发效率,同时保证工具的跨平台兼容性。其主要应用场景为系统故障诊断、网络优化、系统安全和性能监控。 未来,Coolbpf 还将探索新技术和新特性,例如提升字节码翻译效率和内核运行时安全等,进一步丰富应用场景。
livetrace 架构简介
livetrace 是 SysOM 里面进行持续剖析的主要模块,其在节点端的架构如图所示,它采用异步机制构建了一套高度模块化的插件管理框架。
该框架能够以插件化的方式管理和处理多种类型的数据,用户可以自由开关对应的插件以及对对应的插件进行参数配置,管理的插件具体包括:
-
基础监控数据:提供系统运行状态的基本指标。
-
基础心跳和元数据信息:确保系统的实时健康状况及关键配置信息的持续传输。
-
性能分析(Profiling)数据:涵盖基于不同技术栈的性能分析结果,例如:
-
Perf Profiling:利用 Linux Perf 工具进行低层次的性能分析。
-
eBPF Profiling:通过扩展的 Berkeley Packet Filter (eBPF) 技术实现高效的内核级数据采集。
-
多语言 Profiling:支持 Java 和 Python 等多种编程语言的性能分析。
-
Java 专用堆/锁 Profiling:针对 Java 应用程序特有的内存和锁竞争情况进行深入剖析。
-
符合 OpenTelemetry (OTEL) 标准的 Profiling 数据:遵循 OTEL 规范,确保数据格式的一致性和互操作性。
-
GPU 监控数据:对图形处理单元 (GPU) 的性能进行观测与分析。
-
此外,LiveTrace 针对 RunD(安全容器运行时)环境进行了专门优化,旨在最小化其在资源受限场景下的占用,从而提升整体效率和稳定性。
在数据输出方面,LiveTrace 支持以下几种标准协议和格式:
-
OpenTelemetry Exporter:兼容 OTEL 生态系统中的各种后端服务。
-
阿里云 SLS (Simple Log Service):这是一项专为阿里巴巴云平台设计的日志存储与分析服务,旨在为用户提供高效、可靠且可扩展的日志管理解决方案。通过SLS,用户能够在云端环境中轻松实现日志数据的采集、存储、检索及实时分析,从而显著提升运维效率和故障排查能力。
-
阿里云 OSS (Object Storage Service):作为一款高度可扩展且具备企业级安全特性的对象存储服务,OSS 为用户提供了海量、安全、低成本的数据存储方案。它支持多种数据访问方式,并具备强大的数据处理能力,适用于各类应用场景,如静态网站托管、多媒体文件存储、大数据分析等。借助OSS,企业能够轻松应对日益增长的数据存储需求,同时确保数据的高可用性和持久性。
综上所述,LiveTrace 通过灵活的插件架构、高效的资源管理和广泛的数据输出选项,为不同部署场景提供了强大的监控与分析能力。
全栈 profiling 功能
栈回溯能力
栈回溯是性能分析(profiling)中的关键能力。Livetrace 通过支持以下几种场景,显著提升了这一能力:
1. 无帧指针(Frame Pointer,FP)的应用程序:为了优化性能,许多应用程序选择不保留帧指针。这导致传统的基于帧指针的回溯方法无法使用。因此,我们必须采用更为复杂的基于 DWARF 的栈回溯技术来获取调用栈信息。
2. 解释型语言的栈回溯:Java、Python 等解释型或高级编程语言具有独特的栈帧结构。因此,关键在于准确识别当前运行的程序,并解析相应的栈帧信息。
Coolbpf Profiler 利用 eBPF 的编程灵活性,支持有帧指针和无帧指针的应用程序以及解释性语言(如 Java 和 Python)的栈回溯功能。
栈分析能力
Livetrace 通过对性能分析数据的存储和处理流程进行优化,增强了性能分析的水平扩展能力和集中展示能力。此外,通过自主研发的 SQL 引擎,实现了数据加工、转换和融合展示的功能。目前实现的功能包括:
1. 热点分析
热点分析主要应用于单实例的热点可视化,旨在为用户提供对其进程内关键性能瓶颈的全面概览。该功能通过先进的可视化技术,以直观且详尽的方式呈现了进程中资源消耗较高的部分,从而帮助用户精准识别并优化高负载区域。此方法不仅提升了系统性能监控的透明度,还显著增强了对复杂应用环境中资源使用情况的理解与管理能力。
2.调用图谱
函数调用图谱以树状结构清晰地展示了函数间的调用关系。每个节点框代表一个函数,其中“自”表示该函数自身的执行热度,“调”表示被该函数调用的所有子函数的总执行热度,“总”则是两者之和。边表示调用关系,边上标注的百分比数字表示被调用函数“总”热度在当前节点“总”热度中的占比。通过加粗和标红连线来突出显示图谱中最热点的调用路径,并通过放大节点框和字体来标识最热点的函数。该图谱支持鼠标拖动和缩放功能,用户可以根据需要调整视图。相比于传统的火焰图形式,函数调用图谱能够更直观地揭示函数热点及其调用关系,从而便于性能分析和优化。
3.热点对比
热点对比功能在分析正常环境与异常环境方面具有显著的价值,能够从海量数据中精准识别细微的热点差异,从而有效定位问题的根本原因。这一技术手段通过高级算法和数据分析模型,实现了对复杂系统状态的深度洞察,为故障诊断和性能优化提供了强有力的支持。通过对不同环境下的数据进行精细化比对,该功能可以揭示潜在的问题模式,进而辅助决策者制定更加科学合理的解决方案。
livetrace 在持续性能分析中的应用
持续性能分析在多个关键领域得到了广泛应用,尤其在性能瓶颈分析和应用上线评估中发挥了重要作用。这些应用不仅提升了系统的稳定性和效率,还为开发团队提供了宝贵的反馈信息,从而促进了软件质量的持续改进。
1. 性能瓶颈分析
性能瓶颈是指系统运行过程中出现的限制因素,它会显著降低整个系统的处理能力或响应速度。通过持续性能分析,可以有效地识别出这些瓶颈所在,进而采取针对性措施进行优化。例如,在一个分布式计算环境中,如果某个节点成为了数据传输的瓶颈,则可以通过增加该节点的资源配置或者调整网络拓扑结构来缓解问题;对于数据库查询而言,使用性能监控工具能够帮助发现执行效率低下的 SQL 语句,并据此对索引策略或查询逻辑进行优化。此外,持续性地收集与分析性能指标还有助于预防未来可能出现的新瓶颈,确保系统始终处于最佳工作状态。
2. 应用上线评估
当一个新的应用程序准备部署到生产环境时,对其进行彻底而全面的测试是非常必要的。这不仅包括功能验证,也涵盖了性能方面的考量。在此阶段实施持续性能分析可以帮助团队了解新版本相对于旧版本在资源消耗、响应时间等方面的差异,及时发现潜在的风险点。比如,通过模拟真实用户访问场景的压力测试,可以评估新功能上线后对服务器负载的影响程度;利用 A/B 测试方法比较不同配置下的用户体验效果,选择最优方案发布。同时,基于历史数据建立基线模型,实时监测上线后的实际表现是否符合预期目标,一旦发现问题能够迅速定位原因并作出响应。
总之,无论是为了消除现有系统的性能障碍还是保证即将发布的软件产品达到预期的质量标准,持续性能分析都是不可或缺的重要手段之一。它贯穿于软件开发生命周期的各个阶段,为企业构建高效可靠的信息技术基础设施提供了强有力的支持。
3. 持续性能分析的进一步应用
除了在性能瓶颈分析和应用上线评估中的重要作用外,持续性能分析还在其他多个方面发挥着关键作用。例如,在系统容量规划中,通过长期收集和分析性能数据,可以更准确地预测未来资源需求,从而避免过度配置或资源不足的问题。这不仅有助于优化成本,还能确保系统的可扩展性和弹性。
1)系统容量规划
在进行系统容量规划时,持续性能分析提供了重要的数据支持。通过对历史性能数据的深入分析,可以识别出资源使用模式和趋势,进而预测未来的负载情况。例如,通过分析过去一年中特定时间段(如节假日或促销活动期间)的性能指标,可以更好地预估这些高峰期的资源需求,并提前进行相应的资源配置。此外,还可以利用机器学习算法对性能数据进行建模,以提高预测的准确性。这种基于数据驱动的方法能够帮助企业更加科学地进行资源规划,减少不必要的浪费。
2)故障诊断与根因分析
持续性能分析也是故障诊断和根因分析的重要工具。当系统出现异常时,通过实时监控和历史数据对比,可以快速定位问题所在。例如,如果某个服务的响应时间突然增加,可以通过性能监控工具查看相关指标的变化,结合日志信息和其他上下文数据,确定是由于网络延迟、硬件故障还是代码缺陷引起的。此外,通过构建性能基线模型,可以自动检测偏离正常范围的异常行为,并触发警报机制,以便及时采取措施。
3)服务质量保障
持续性能分析对于保障服务质量同样至关重要。特别是在高可用性要求严格的场景下,如金融交易系统或在线服务平台,任何性能下降都可能导致严重的业务影响。通过实时监控关键性能指标(如响应时间、吞吐量、错误率等),可以确保系统始终处于最佳状态。一旦发现潜在的服务降级风险,可以立即启动应急预案,进行故障切换或负载均衡调整,以最小化对用户的影响。
4)自动化运维
随着 DevOps 文化的普及,自动化运维成为越来越多企业的选择。持续性能分析为自动化运维提供了坚实的数据基础。通过集成性能监控工具与 CI/CD 流水线,可以在每次部署后自动进行性能测试,确保新版本的稳定性和高效性。同时,结合自愈系统,可以根据性能数据自动调整资源配置、重启服务或执行其他恢复操作,从而实现真正的无人值守运维。
总之,持续性能分析不仅是提升系统稳定性和效率的关键手段,还在系统容量规划、故障诊断、服务质量保障以及自动化运维等多个方面发挥着重要作用。它为企业构建高效可靠的信息技术基础设施提供了强有力的支持,推动了软件质量的持续改进。通过全面而深入的性能分析,企业能够更好地应对复杂多变的业务环境,确保业务连续性和竞争力。
应用可观测
在系统运维领域,问题的第一视角都是在应用,分析路径也是自顶层应用向下到 OS、硬件及基础设施层面。在 OS 运维中,SysOM 目前具备 IO、内存、网络、调度等领域问题的深度剖析与监控能力,力求能紧扣用户痛点,做到结论与客户问题能关联,但仍然存在如下问题:
-
数据监控只限:系统资源(内存、调度、IO、网络),缺乏对应用的观测能力,解决的是什么时间有什么问题;无法解决问题在哪里,根因是什么。
-
不具备问题第一视角,无法建立应用异常与 OS 异常指标或事件的关联性,OS 侧的诊断分析可能关联不到客户问题;一般的,经过上下游多个团队来回 debug 才找到应用与 OS 的关系点。
我们也分析了 nginx-agent、openresty xray 等开源产品,这些开源产品虽然做到了应用指标监控,但无法做到内核侧的对应分析。
为了解决这一痛点,我们通过深入应用侧的问题观测,把应用的异常和 OS 的行为对应起来,给客户一个明确的根因分析:如网络抖动,Nginx 性能抖动问题场景中、将应用指标或异常事件与 OS 异常指标或事件关联分析,以应用问题的第一视角,解决“问题在哪里,根因是什么”。
SysOM 应用观测功能主要解决应用出现的异常问题后,如何一步一步对应用、中间件、内核、硬件驱动、前后端虚拟化、底层基础设施的问题进行定界和定位。Agent 侧主要进行指标和日志的采集和初步分析,Server 主要是对采集到的数据进行关联分析,给出进一步的修复建议。
功能详细设计
1. 网络拓扑观测功能设计
上图为应用拓扑总体架构,总体上分为指标采集和指标聚合&上传两大板块,具体介绍如下:
指标采集
-
网络链接,这部分主要获取应用的链接信息用于绘制拓扑,包括:源地址和目的地址。
-
网络 RT,这部分主要获取应用处理请求的响应时延指标,应用拓扑前端会根据时延信息来标记出现明显阻塞的应用。
-
进程信息,获取进程的信息,包括:进程 pid、进程名、进程的容器 ID、进程的 pod ID 等关键信息,应用拓扑会根据进程信息来进行页面的跳转。
-
网络流量,获取应用的流量,包括 ingress 和 egress 流量信息。
指标聚合&上传
-
拓扑节点表:将采集上来的信息以应用为基本单位进行聚合,生成节点表。
-
拓扑边表:将采集上来的网络链接指标进行处理,聚合成应用之间的连接关系。
全局网络拓扑,可以可视化展示集群内业务 Pod 之间的交互关系。如果发生异常的 Pod,会以红色标记出来。当将鼠标悬停在 Pod 节点上时,可以查看该 Pod 的名称、最大网络延迟、相关的 URL 请求和网络流量等详细信息。
2. Nginx 观测功能设计
上图为 Nginx 应用观测总体架构,总体上分为 Agent 指标采集、应用抖动诊断、异常检测、监控大盘三大板块,具体介绍如下
Agent 指标采集
-
Nginx 请求采集,主要从 nginx access log 进行指标提取。另外一个是 nginx error log,包含一些链接错误的信息。采集的指标有:http 状态码,请求 RT、upstream RT 等。
-
Nginx 系统指标:从unity获取的系统指标,包括 CPU、内存、网络、调度等信息。
-
Nginx 系统增强指标:需要使用 eBPF 采集的系统增强指标,如网络队列饱和度、丢包信息等。
应用抖动诊断
-
抖动诊断,目前主要覆盖用户态收包慢、内核队列慢、关中断和软中断调度延迟和 fpga 抖动检测。
-
丢包诊断,诊断应用丢包的详情以及根因分析。
异常事件:异常事件大盘主要进行抖动、499/504 的根因分析。
监控大盘:根据黄金四指标(错误、饱和度、延迟、流量),将监控大盘分为 4 个子盘:告警分布、Nginx 资源利用率、Nginx 延迟和 Nginx 吞吐。
监控大盘包含 mysql 异常事件分布、应用指标、系统指标三个部分。
用户进入大盘,首先可以看到 Nginx 异常事件分布一栏是否存在相关计数,如有计数,点击对应柱状图区域跳转到异常事件大盘,查看异常事件的详情。在异常事件大盘中,存在对此次异常事件的简要原因分析,更详细的进一步根因,支持点击“进一步诊断”,跳转到进一步的根因分析诊断界面,如当原因为网络抖动导致,则跳转到应用诊断界面做进一步诊断。
没有异常告警的情况下,可在大盘上查看 Nginx 的应用指标详情,其中包含 Nginx 应用侧所实现的请求数、http 状态码分布、响应时延、workers 数量、活跃的连接数等指标。这些指标都是 Nginx 用户非常熟悉而且容易理解的指标,通过这些指标,用户可以剖析 Nginx 应用的具体行为。
最后是系统指标,系统指标是从内核层面观测到的和 Nginx 应用有关的指标,包括:Nginx 进程 CPU 利用率、Nginx 进程内核利用率以及 Nginx 进程网络流量。
异常事件大盘展示应用异常事件,以表格形式呈现,重点突出异常事件描述,描述事件的初步分析原因,并支持通过点击“应用抖动诊断”对初步原因进行更深入的分析。
3. Nginx 诊断功能设计
诊断功能预计包含三大部分:
1. tcpping 探测诊断:主要覆盖了通用类型网络故障,包括:调度抖动导致的网络抖动、内核队列慢、软中断延迟、关中断、FPGA 故障等;
2. HTTP 业务报文诊断:主要覆盖了和应用相关的抖动,比如用户收包慢;
3. Nginx LUA 应用分析:主要结合具体应用进行分析,包括 LUA 热点分析、LUA 占用内存分析。
当发现网络抖动时,可以点应用抖动诊断。
同时,网页会自动跳转到下面页面,也自动输入了相应的诊断参数,点击开始诊断。
点击开始诊断后,会新增一条诊断记录,当诊断结束时,可以点击查看诊断结果。
下图是诊断的输出结果,可以看到已经抓到了进程关闭了中断,导致网络抖动。
对于应用的可观测,除了通过 SysOM 中心端的网络拓扑进行监控和分析,使用 SysOM 的 livetrace 功能,可以将用户态的栈、内核态的栈都呈现在一张火焰图或者调用图谱里,这样就方便的看到每一个应用在用户态是如何调用下来的,在内核态是如何处理的,对于那些应用访问延时高一类问题,非常能直观的看到在哪里慢了,比如是否做了阻塞的 IO 操作。
总结和展望
SysOM 可观测体系通过其强大的持续性能剖析和 GPU 性能分析功能,为现代软件系统提供了全面的性能优化工具。该平台基于 eBPF 技术,结合 Coolbpf 增强型开发框架,实现了低开销、高精度的数据采集和分析。LiveTrace 客户端架构采用异步机制和模块化插件管理,支持多种数据类型,并针对 RunD 环境进行了优化,确保在资源受限场景下的高效运行。全栈 Profiling 功能包括无帧指针和解释型语言的栈回溯、热点分析、调用图谱和热点对比,帮助用户深入理解性能瓶颈并进行精准优化。
LiveTrace 的技术优势:
-
低开销监控:基于 eBPF 技术,LiveTrace 能够在不显著影响系统性能的情况下进行高精度的数据采集。
-
全面的数据支持:支持基础监控、心跳信息、性能分析等多种数据类型,确保数据的多样性和完整性。
-
灵活的输出协议:支持 OpenTelemetry、阿里云 SLS 和 OSS 等多种数据输出协议,提高了数据的互操作性和一致性。
-
模块化设计:采用模块化插件管理框架,便于扩展和维护,能够快速适应不同的应用场景和需求。
在性能分析领域的广阔前景:
-
多维度综合分析:未来,LiveTrace 将进一步拓展其分析维度,从 CPU、内存、I/O、网络等多个角度进行综合分析,提供更全面的性能视图。这将帮助企业更准确地识别和解决性能瓶颈,提升系统的整体性能和稳定性。
-
自动化与智能化:结合机器学习和人工智能技术,LiveTrace 将实现自动化的性能优化和故障预测。通过智能算法,系统能够自动检测异常行为并提出优化建议,减少人工干预,提高运维效率。
-
无缝集成:LiveTrace 将继续与现有的 CI/CD 流水线、监控系统和日志管理工具无缝集成,形成统一的可观测性解决方案。这将简化企业的运维流程,提升整体的 IT 基础设施管理水平。
在 AI 领域的广阔前景:
-
深度学习模型优化:随着 AI 技术的不断发展,LiveTrace 将在深度学习模型的性能优化中发挥重要作用。通过详细的 GPU 利用率和内核函数调用时间统计,LiveTrace 可以帮助研究人员和工程师优化模型结构和参数,提高训练和推理的效率。
-
边缘计算与物联网:LiveTrace 的技术优势使其在边缘计算和物联网领域具有广泛的应用前景。这些领域的设备通常资源受限,对性能监控和优化有更高的要求。LiveTrace 的低开销监控和灵活的数据支持将使其成为这些领域的理想选择。
-
AI 驱动的运维:未来的运维将越来越依赖于 AI 技术。LiveTrace 将结合 AI 技术,实现更智能的性能分析和故障诊断。通过实时监控和历史数据分析,系统能够自动检测异常行为并提出优化建议,从而提升系统的稳定性和响应速度。
总之,LiveTrace 凭借其低开销监控、全面的数据支持、灵活的输出协议和模块化设计等技术优势,在性能分析和 AI 领域展现了广阔的应用前景。未来,LiveTrace 将继续创新和发展,为企业构建高效可靠的信息技术基础设施提供强有力的支持,推动软件质量的持续改进。
—— 完 ——