一名工程师正在查看监视器或终端设备。

什么是性能工程?

性能工程定义

性能工程是优化 IT 系统以满足速度与效率基准的实践。

性能工程并非单一操作,而是一种 DevOps左移方法论,支持企业在软件开发生命周期 (SDLC) 的每个环节跟踪并优化性能。其目标是确保系统满足速度、可靠性、效率、响应时间等维度的性能指标。

性能工程团队首先通过压力测试搭建系统性能基线。随后,团队基于该基线排查网络问题,发掘优化空间。基准设定完成后,工程师可以着手重新配置网络、实施修复方案,同时持续监控网络性能问题,支撑后续容量规划。

可观测性是性能工程的基础。可观测性工具采集描述系统性能的原始数据,包括日志、指标与跟踪数据,性能工程团队可利用这些数据跟踪修复方案的效果。性能工程师还会借助各类工具开展应用性能管理与监控、压力测试、浏览器审计及基准测试,尽可能清晰地掌握系统运行状态。

性能工程对比应用性能管理、性能测试

性能工程是一门覆盖范围更广的端到端学科,核心是优化 IT 系统以满足预设基准。应用性能管理 (APM) 与性能测试是该整体流程中的两项核心工作。

应用性能管理是一种使用软件工具、数据分析和应用程序管理流程来帮助组织优化业务应用程序的性能、可用性和用户体验的实践。性能工程贯穿整个开发流程,而 APM 聚焦于排查并修复运行中应用程序的问题。

同理,性能测试是一项专项工作,通过负载测试、压力测试、耐久性测试等多种方式,验证网络或应用程序在不同场景下的性能表现。与 APM 一样,性能测试只是性能工程更广实践范畴中的一项工作。

性能工程如何运作?

性能工程依托一套灵活且完整的流程开展,涵盖基准设定、测试与优先级排序、优化、规划及性能监控。

基准测试

首先,组织需要明确自身系统与应用程序为达成业务目标所需的性能水平。随后,性能工程师测试当前性能以建立参考基准,确定达成性能指标的路径。

常见的基准指标包括延迟、吞吐量、资源利用率与错误率。开发团队可以在微观层面(单个服务器或服务内),也可在整个应用程序或网络范围内衡量上述指标。

基准设定通常需要围绕性能需求与开发环境明确具体问题。例如,工程师不会笼统设定 CPU 利用率的通用阈值,而是会验证当 5,000 名用户同时使用某款应用程序时,CPU 使用率是否低于 60%。

测试与优先级划分

借助性能测试工具,性能工程师会对照既定基准验证测试数据,明确需要调整的位置与内容,以满足要求的服务级别。

常见的性能测试类型包括:

负载测试

负载测试显示系统在预期负载下的运行表现。其目标是揭示系统在正常工况下,面对常规规模工作负载及平均并发用户数时的行为特征。

可扩展性测试

可扩展性测试通过增加数据量或要处理的用户负载来使该系统承受压力。它显示一个系统是否能在加速后继续提供服务。

压力测试

压力测试将系统推至已知运行极限,甚至超越极限,来精确测定系统在达到崩溃点前的最大承受能力。

峰值测试

峰值测试用于观测用户流量或数据量突发急剧增长时的系统表现。系统必须在维持常规操作的同时消化各种突变。

容量测试

卷测试考察系统处理海量数据的能力,重点验证系统是否可完整处理并存储数据,且不出现性能降级。

耐久性测试

耐久性测试,又称浸渍测试,是指工程师通过长期观测系统,排查数据逐步退化、内存泄漏等问题。

优化

明确系统的极限与不足后,即可启动优化流程。

根据对应性能瓶颈的性质,性能工程师可采用的优化策略包括:

  • 算法优化,即对支撑系统功能的算法进行调整,提升运行效率。

  • 数据库优化,即通过查询优化(确定数据库执行查询的最有效方式)或索引优化等流程解决系统数据的底层问题,其中索引优化的目标是确保系统采用最快的检索路径。

  • 缓存,即存储高算力需求计算操作的结果,以便更快调取与复用。

  • 内存优化,工程师通过复用内存对象、重组数据或将部分数据异地存储,减少内存泄漏并加快垃圾回收速度。

  • 网络优化涵盖带宽压缩、负载均衡、HTTP 连接复用等多种提升网络性能的方式。

规划与监控

系统优化完成后,性能工程师会持续监控指标与新基线的偏差,规划后续业务增长与活动支撑。

可观测性支持性能工程师判断系统是否按预期运行。通过采集并分析日志、指标与跟踪数据,可观测性工具可支持 IT 团队实时自动完成问题排查与解决。系统越容易观测,IT 团队就能越快越准确地根据已识别的性能问题确定根本原因,而无需进行额外测试或编码。

容量规划可以帮助性能工程师提前预判未来的 IT 基础设施需求,走在业务需求前面。容量规划包括分析当前需求与可用容量,并与组织的能力和资源做对标。然后,组织可以制定灵活的策略,高效扩展资源与业务承载能力。

AI 学院

利用混合云实现 AI 就绪

本课程由 IBM 资深思想领袖带领,旨在帮助企业领导者获得所需的知识,以便划分可以推动增长的 AI 投资的优先级。

性能工程的优势

性能工程的优势包括优化用户体验、提升 IT 基础架构可扩展性、提高问题解决效率,以及完善容量规划。

改善用户体验

性能工程通过修复高延迟等易导致用户流失的性能问题,优化用户体验。通过优化软件工程流程与输出,性能工程有助于建立用户信任,提升用户留存率。

可扩展性提升

性能工程可以清晰呈现系统内部的问题分布。基于这一清晰认知,团队在系统扩容时更易规避瓶颈,扩容包括横向新增服务与纵向提升网络容量两种方式。

高效的问题解决能力

性能工程可以帮助工程师掌握搭建符合既定基准的系统所需的工具与知识。工程师可以更快解决性能问题,缩短平均修复时间 (MTTR),同时降低成本,因为问题在尚未对网络性能造成严重干扰时就已被发现。

简化容量规划流程

性能工程可以增进工程师对系统行为的理解,从而帮助提高容量规划的有效性。通过基准测试流程和持续的可观测性实践,工程师可以获得更深入的洞察分析,明晰网络的需求。这份洞察分析可以辅助工程师做出更合理的容量决策,降低服务器容量配置过高或不足带来的成本风险。

性能工程面临的挑战

性能工程面临的挑战包含现代系统复杂度高、问题根本原因定位难、“长尾”问题处理,以及搭建配套工具集与储备专业能力。

复杂性

现代 IT 环境以数量可达数千个的微服务为主体,这类微服务大多部署在复杂混合云环境中。在这类分布式系统中采集、分析数据并依据洞察分析落地行动,会消耗大量资源,工作流有时存在不可预测性。

定位根本原因

系统复杂度也会加大定位网络问题真实根本原因的难度。如果 API 响应迟缓,诱因可能是数据库索引设置不佳、内存泄漏或是配置故障。性能工程师可能需要开展根本原因分析,找到可落地优化的实际切入点。

长尾问题

长尾问题指仅少数用户会遭遇的劣质网络工况。这类问题一般由特殊、难以侦测的异常点引发,常规可观测手段无法捕捉。放在性能工程的场景下,这类问题会形成隐患,它们会拖累整体网络状态,常规性能测试却难以挖掘背后根本原因。

构建基础架构

落地性能工程,既需要人员具备专业能力,也需要成熟完善的平台能力支撑。性能测试需要投入较高成本,搭建大规模仿真环境复现各类网络工况。团队需要充分吃透系统架构,才能把海量遥测数据转化为可操作的洞察分析。性能工程具备灵活迭代的特性,企业需要配套组织架构来适配快速变更节奏。

作者

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

相关解决方案
IBM Cloud Infrastructure Center

IBM® Cloud Infrastructure Center 是一个兼容 OpenStack 的软件平台,旨在管理基于 IBM® zSystems 和 IBM® LinuxONE 运行的私有云基础设施。

深入了解 Cloud Infrastructure Center
IT 基础架构

跨混合云环境构建安全的 AI 就绪型基础设施

深入了解 IT 基础设施解决方案
基础设施服务

在 IBM® Technology Expert Labs 专家的指导下,加速、保护并优化您的混合云和企业基础设施。

深入了解基础设施服务
采取后续步骤

利用 IBM 的混合云和 AI 就绪解决方案来实现企业基础设施转型。深入了解旨在保护、扩展和实现企业的现代化改造的服务器、存储和软件,或获取专家洞察分析,从而强化您的生成式 AI 战略。

  1. 深入了解 IT 基础设施解决方案
  2. 深入了解 IBM Cloud