性能工程是优化 IT 系统以满足速度与效率基准的实践。
性能工程并非单一操作,而是一种 DevOps 与左移方法论,支持企业在软件开发生命周期 (SDLC) 的每个环节跟踪并优化性能。其目标是确保系统满足速度、可靠性、效率、响应时间等维度的性能指标。
性能工程团队首先通过压力测试搭建系统性能基线。随后,团队基于该基线排查网络问题,发掘优化空间。基准设定完成后,工程师可以着手重新配置网络、实施修复方案,同时持续监控网络性能问题,支撑后续容量规划。
可观测性是性能工程的基础。可观测性工具采集描述系统性能的原始数据,包括日志、指标与跟踪数据,性能工程团队可利用这些数据跟踪修复方案的效果。性能工程师还会借助各类工具开展应用性能管理与监控、压力测试、浏览器审计及基准测试,尽可能清晰地掌握系统运行状态。
性能工程是一门覆盖范围更广的端到端学科,核心是优化 IT 系统以满足预设基准。应用性能管理 (APM) 与性能测试是该整体流程中的两项核心工作。
应用性能管理是一种使用软件工具、数据分析和应用程序管理流程来帮助组织优化业务应用程序的性能、可用性和用户体验的实践。性能工程贯穿整个开发流程,而 APM 聚焦于排查并修复运行中应用程序的问题。
同理,性能测试是一项专项工作,通过负载测试、压力测试、耐久性测试等多种方式,验证网络或应用程序在不同场景下的性能表现。与 APM 一样,性能测试只是性能工程更广实践范畴中的一项工作。
通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明。
性能工程依托一套灵活且完整的流程开展,涵盖基准设定、测试与优先级排序、优化、规划及性能监控。
首先,组织需要明确自身系统与应用程序为达成业务目标所需的性能水平。随后,性能工程师测试当前性能以建立参考基准,确定达成性能指标的路径。
常见的基准指标包括延迟、吞吐量、资源利用率与错误率。开发团队可以在微观层面(单个服务器或服务内),也可在整个应用程序或网络范围内衡量上述指标。
基准设定通常需要围绕性能需求与开发环境明确具体问题。例如,工程师不会笼统设定 CPU 利用率的通用阈值,而是会验证当 5,000 名用户同时使用某款应用程序时,CPU 使用率是否低于 60%。
借助性能测试工具,性能工程师会对照既定基准验证测试数据,明确需要调整的位置与内容,以满足要求的服务级别。
常见的性能测试类型包括:
负载测试显示系统在预期负载下的运行表现。其目标是揭示系统在正常工况下,面对常规规模工作负载及平均并发用户数时的行为特征。
可扩展性测试通过增加数据量或要处理的用户负载来使该系统承受压力。它显示一个系统是否能在加速后继续提供服务。
压力测试将系统推至已知运行极限,甚至超越极限,来精确测定系统在达到崩溃点前的最大承受能力。
峰值测试用于观测用户流量或数据量突发急剧增长时的系统表现。系统必须在维持常规操作的同时消化各种突变。
卷测试考察系统处理海量数据的能力,重点验证系统是否可完整处理并存储数据,且不出现性能降级。
耐久性测试,又称浸渍测试,是指工程师通过长期观测系统,排查数据逐步退化、内存泄漏等问题。
系统优化完成后,性能工程师会持续监控指标与新基线的偏差,规划后续业务增长与活动支撑。
可观测性支持性能工程师判断系统是否按预期运行。通过采集并分析日志、指标与跟踪数据,可观测性工具可支持 IT 团队实时自动完成问题排查与解决。系统越容易观测,IT 团队就能越快越准确地根据已识别的性能问题确定根本原因,而无需进行额外测试或编码。
容量规划可以帮助性能工程师提前预判未来的 IT 基础设施需求,走在业务需求前面。容量规划包括分析当前需求与可用容量,并与组织的能力和资源做对标。然后,组织可以制定灵活的策略,高效扩展资源与业务承载能力。
性能工程的优势包括优化用户体验、提升 IT 基础架构可扩展性、提高问题解决效率,以及完善容量规划。
性能工程通过修复高延迟等易导致用户流失的性能问题,优化用户体验。通过优化软件工程流程与输出,性能工程有助于建立用户信任,提升用户留存率。
性能工程可以清晰呈现系统内部的问题分布。基于这一清晰认知,团队在系统扩容时更易规避瓶颈,扩容包括横向新增服务与纵向提升网络容量两种方式。
性能工程可以帮助工程师掌握搭建符合既定基准的系统所需的工具与知识。工程师可以更快解决性能问题,缩短平均修复时间 (MTTR),同时降低成本,因为问题在尚未对网络性能造成严重干扰时就已被发现。
性能工程可以增进工程师对系统行为的理解,从而帮助提高容量规划的有效性。通过基准测试流程和持续的可观测性实践,工程师可以获得更深入的洞察分析,明晰网络的需求。这份洞察分析可以辅助工程师做出更合理的容量决策,降低服务器容量配置过高或不足带来的成本风险。
性能工程面临的挑战包含现代系统复杂度高、问题根本原因定位难、“长尾”问题处理,以及搭建配套工具集与储备专业能力。
长尾问题指仅少数用户会遭遇的劣质网络工况。这类问题一般由特殊、难以侦测的异常点引发,常规可观测手段无法捕捉。放在性能工程的场景下,这类问题会形成隐患,它们会拖累整体网络状态,常规性能测试却难以挖掘背后根本原因。
落地性能工程,既需要人员具备专业能力,也需要成熟完善的平台能力支撑。性能测试需要投入较高成本,搭建大规模仿真环境复现各类网络工况。团队需要充分吃透系统架构,才能把海量遥测数据转化为可操作的洞察分析。性能工程具备灵活迭代的特性,企业需要配套组织架构来适配快速变更节奏。
IBM® Cloud Infrastructure Center 是一个兼容 OpenStack 的软件平台,旨在管理基于 IBM® zSystems 和 IBM® LinuxONE 运行的私有云基础设施。
跨混合云环境构建安全的 AI 就绪型基础设施
在 IBM® Technology Expert Labs 专家的指导下,加速、保护并优化您的混合云和企业基础设施。