写点什么

如何定义性能需求

  • 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:339158
用户头像

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

关注

评论

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

全球IT外包的趋势与发展

Ogcloud

外包 IT IT外包 IT外包公司 IT外包服务

谷歌SEO优化技巧:外贸独立站关键词的筛选与挖掘

九凌网络

软件测试学习笔记丨性能测试工具JMeter 基本使用

测试人

软件测试 测试开发

⏳大咖直播预告 | 数据库系统访问控制『面面观』

KaiwuDB

数据库

云手机实现全方位的海外舆情监测

Ogcloud

云计算 云手机 海外云手机 云手机海外版 舆情监测

PopChar for Mac(特殊字符输入工具) v10.0直装激活版

iMac小白

中文Navicat Premium 15 for mac破解安装包

iMac小白

为什么要对数据库优化

小魏写代码

做市机器人招代理

区块链技术

俄罗斯淘宝代购系统丨淘宝代购集运系统PHP

tbapi

淘宝代购系统 淘宝代购集运系统 俄罗斯淘宝代购系统

利用技术提升UI自动化测试的准确性

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

测试

数字先锋| 望闻问切更有“数”!

天翼云开发者社区

云计算 云平台

淘系API接口推荐:淘宝商品描述信息数据接口

tbapi

淘宝API接口 淘宝商品描述接口

亚马逊云科技在中国区域推出Amazon Network Firewall

财见

IT外包怎样帮助企业控制成本?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT外包企业

已解决com.orbotix.common.DiscoveryException服务发现异常的正确解决方法,亲测有效!!!

小明Java问道之路

重磅!云智慧推出轻量智能化服务管理平台轻帆云

云智慧AIOps社区

ITSM ITSM软件 ITSM解决方案 工单管理系统 工单管理

长查询问题,TDengine 终于攻克了!

TDengine

tdengine 时序数据库

Dynamic Wallpaper for Mac(Mac动态壁纸桌面) v17.4中文版

iMac小白

PDF增强插件enfocus pitstop pro for mac中文破解版

iMac小白

软件测试学习笔记丨闭包与装饰器

测试人

软件测试

GaussDB(DWS)运维利刃:TopSQL工具解析

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

为什么 ERC-20 代币钱包的开发会改变代币化经济的游戏规则?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

谷歌SEO外链怎么做:初学者入门指南

九凌网络

UI自动化测试技术的突破与挑战

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

测试

ENNOVI推出ENNOVI-CellConnect-Prism

财见

"使用PAI实现涂鸦变大作"AIGC活动重磅来袭!

阿里云大数据AI技术

AIGC

详细的Java学习指南,java高级面试题库

程序猿忙什么

如何优化UI自动化测试流程?

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

测试

从视觉识别到动作推荐:UI自动化测试的完整技术链条剖析

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

测试

服务化UI页面结构树解析:优化UI自动化测试的实践探索

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

测试

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