写点什么

如何定义性能需求

  • 2015-02-03
  • 本文字数:1000 字

    阅读完需:约 3 分钟

JVM 监控解决方案提供商 Plumbr 的官方博客上发表了一篇题为《如何定义性能需求》的文章。文章指出,随着企业信息化程度的提高,业务人员对软件功能性需求的描述越来越好。但涉及到易用性、兼容性或性能等非功能性需求的时候,他们经常会不得要领。比如,他们可能会提出“它的运行速度要快”这样的性能需求。在更好的情况下,他们可能会提出下面这样的性能需求:

  • 在系统中执行的操作,95% 的都必须在 5 秒针内响应;
  • 系统必须支持 100 并发用户。

初看上去,这样的需求已经好了很多了。但实际上,它们甚至比只用一个“快”字描述更差。虽然它们包含了一些数字,看上去似乎可以作为开发人员的终极目标。但实际上,这两个需求最多只能为关于性能需求的讨论开一个头。

文章接下来对上述两个需求进行了剖析。

第一个需求没有提出针对其它 5% 的操作的性能需求。而且,不同的功能对性能的需求也不尽相同。比如,对于功能“显示当前账户余额”和“显示 2013 年所有的交易”,前者 5 秒响应可能都略显慢,而后者响应时间再长一些也可以接受。因此,性能需求描述应该:

  • 针对不同的操作类型指定可接受的时间延迟;
  • 将时间延迟相关的需求与负载 / 吞吐量相关的需求联系起来;
  • 明确时间延迟的测量位置,比如,延迟时间是以客户端为标准,还是以服务器端发送出最后一个字节为标准;
  • 哪些操作的时间延迟不太要紧。

第二个需求看上去很准确,实际上很笼统。比如,将“100 个并发用户”理解成“100 个线程处理 100 个并发操作”。如果每个操作用时 1 秒,那么系统吞吐量为 100 ops/sec;但如果每个操作用时 10 秒,那么系统吞吐量则只有 10 ops/sec。对于后一种情况,我们不能认为它满足“100 个并发用户”的需求。因此,需求应该更清楚地描述特定用户的行为,而不是用“并发用户”这样的术语。当然,这里并不是说建议测量吞吐量,因为现实世界的应用程序往往是多功能的,很难使用吞吐量来衡量其性能。

本文还提到了容量规划,即在什么样的前提条件下实现上述性能需求,包括如下三个方面:

  • 系统的数据量;
  • 系统的基础设施限制,比如,CPU、内存等;
  • 系统的部署环境,比如,网络带宽是多少,是否需要离线操作等。

总之,应该与业务人员紧密合作,制定出可测量的、具体的性能需求。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-03 07:339578
用户头像

发布了 1008 篇内容, 共 444.0 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

世界第一!华为云图引擎服务GES大幅刷新世界纪录

华为云开发者联盟

华为云 图数据库

测试流程必须严格执行吗?

老张

软件测试 验收测试 质量保障 流程规范

揭秘京东商品详情一键获取的API之旅

代码忍者

pinduoduo API API 性能测试

用豆包MarsCode 和CozeAPI接口全自动做一个文生图组件

TRAE.ai

人工智能 大数据 AI Chat

文生图与文生视频:从文本到视觉的创作革命

测吧(北京)科技有限公司

测试

云栖实录 | 大模型驱动,开源融合的 AI 搜索产品发布

阿里云大数据AI技术

大数据 开源 大模型 AI搜索

部署 LLMs 前如何计算与优化 GPU 内存需求?

Baihai IDP

程序员 AI gpu LLMs

火山引擎边缘智能×扣子,拓展AI Agent物理边界

火山引擎边缘云

堡垒机价格贵吗?一定要买堡垒机吗?

行云管家

网络安全 堡垒机 数据泄露

25个Linux系统性能调优技巧

威哥爱编程

Linux 系统调优

零信任身份安全的基本原则

芯盾时代

身份安全 零信任模型

橱窗LED透明屏:展示和广告的新宠

Dylan

广告 制造 LED display LED显示屏 市场

社交软件红包技术解密(二):解密微信摇一摇红包从0到1的技术演进

JackJiang

即时通讯;IM;网络编程

AIGC技术的变革:语音识别与视觉识别的深度融合

测吧(北京)科技有限公司

测试

京东零售数据湖应用与实践

京东零售技术

数据湖 数据

OCR+PDF解析配套前端工具开源详解!

合合技术团队

#开源 #前端 ODR

同风起,耀星河!华为携手伙伴一起创造无限可能

HarmonyOS开发者

HarmonyOS

国内外大模型应用的现状与未来:以ChatGPT、Mixtral和Llama为例

测吧(北京)科技有限公司

测试

国际开发者成为 Apache IoTDB Committer,新视角谈开源经验!

Apache IoTDB

数据库 开源 时序数据库 IoTDB Apache IoTDB

大数据存储计算平台EasyMR:多集群统一管理助力企业高效运维

袋鼠云数栈

Kafka集群升级项目实施方案,打造高效数据处理平台

敏捷调度TASKCTL

kafka hadoop cloudera 集群 大数据运维

凹语言执行速度比Go快一倍,体积百分之一

chai2010

golang 编程语言 webassembly 凹语言

MQTT vs HTTP:谁更适合物联网?

EMQ映云科技

物联网 HTTP mqtt emqx

1688电商生态新引擎:商品详情API引领行业发展新篇章

代码忍者

pinduoduo API API 性能测试

社区周刊·Vol.182

华为云开发者联盟

开发者 华为云

凹语言Native后端达到C语言性能

chai2010

编程语言 webassembly 凹语言

智算基石全栈加速,百度百舸 4.0 的技术探索和创新

百度Geek说

百度 大模型 技术 优化体系

解锁极致性能:Arm Cortex-X925 IPC 提升15%,终端用户体验感再突破

新消费日报

得物一面,都是非常经典的问题

王中阳Go

Go 面试 后端

如何定义性能需求_JVM_谢丽_InfoQ精选文章