7D性能项目日记1:你的性能项目真的有需求指标吗?

2024-04-02 11:04

本文主要是介绍7D性能项目日记1:你的性能项目真的有需求指标吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、前言
    • 二、大行和小行的性能项目区别
    • 三、项目指标

一、前言

这阵子在一个性能项目中。都忘记了写项目日记。

根据之前的项目习惯,每次做一个项目我都会尽量记录一些东西。

之前我也不清楚为什么写这些,只是觉得要记一下。现在更清楚一点,写日记不仅是以后看了之后还能想起项目上的人和事;也同时可以给同行们一些启示,这个启示就是真实的性能项目是如何执行的。

二、大行和小行的性能项目区别

这是个商业银行项目,资产规模在千亿级别,和四大行的万亿级别差别还远。为啥写这个呢?有人说一个性能项目跟资产规模有什么关系呢?真是操着卖白粉的心。

前一两年在四大行之一里面工作了挺长时间,接触到的人、事和这样的规模的商业银行相比,差别还是很明显的。

首先,大行的IT组织结构、职责划分等会更为明细。 而商业银行相对简单。这一点在实际的工作中会有很明显的影响。比如说你要想拉个会,在小行中可能随手就拉了,但是大行中,很难做到这一点。这就事事在大行要做在前面,会议也要提前定好。这会影响一些进度,但也更规范。

其次,由于组织结构的不同,权限也自然不同。 这会体现在具体的工作中,大行的性能项目中,有分析权限的用户通常都不会到性能团队的人手中,而是由专职环境管理或运维团队负责,这就导致了性能团队中有分析能力的人无法心到手到地分析,只有协调有权限的人配合。而小行就相对宽松,测试环境的权限也可以给到性能分析人员,这样工作效率自然也就高一些。

还有,在实施工艺和实施规范上,大行相对全面,而小行有些是缺失的。 但也正因为这样,大行在实施过程中消耗在非技术层面的时间就要更多一些,而小行就少得多,这个多少可能是翻倍的区别。

其他还有很多细微的区别,这里就不一一列举了。 而这些区别的产生,和资产的级别是有关系的。可能你觉得小行也可以做到像大行那样,如果你是科技部的老大,可能想像一下,你能控制的团队规模和要做的事情有多少,一个企业的IT投入是有比例的,所以有些事情是做不到的。但是这个做不到不是无奈的做不到,有些是不需要那么做。

三、项目指标

回到这个项目上,在这个项目中,我一开始的职责是需求分析和技术支持。需求分析是现场的、技术支持是远程的。 所以我的工作周期是现场两周。

这个项目的容量目标是历史生产峰值的3倍。项目范围是8个最重要的系统(包括银行核心、支付等),再加上全链路场景(测试环境)。

前期我对几个系统进行了调研,看到大家对性能的反应是有很大区别的。在调查表中,有这样的内容:
在这里插入图片描述

对交易类的系统来说,没有用户概念,所以可以不用填写用户列。

而这里面的标准方差让有些人不明白,统计这个有什么意义呢?我就举了个例子,也是我之前项目中实际的事情:一个系统上线后,达到40万人使用的时候,大概会有200个人操作超时导致业务做不了,而这200个人中有部分人会打电话投诉到客服,当时为了应对用户的问题设置了8个客服,而这8个客服那几天其他的业务咨询都没干,就听这200个人报怨了。而这是明显的性能问题导致的。

这样解释过了之后,他们觉得这个值也是必要的,并且要在指标中确定的。

在上表中,要统计的是每个交易的,这里强调每个交易是因为有很多项目中给不了这么细的数据,从而导致容量场景的业务模型一顿乱配,

其结果可想而知,就是:我测我的,上线后你死你的,两不相干。

让我觉得可悲的是,在这个项目中的性能测试人员居然没几个人知道是如何把业务模型配置到性能场景中并且要在运行中保持模型比例的。可能在性能市场上也没有多少人这么做。

我在每一期的线上培训班、在以往的技术分享中都再三强调这个技术点,不管你是用什么工具实现的业务模型,但一定一定一定要在场景执行过程中保持比例关系,不然就是没意义的场景。

而指标对我们来说就是通过不通过的红线,这个红线可以高,也可以低,对性能项目来说都可以接受,关键是指标的高低会产生的成本是否可控。

**时间成本、人员成本、环境成本,**如果都可控的话,指标高一点也没关系。这让我想起来好几年前跟一个朋友的聊天中说到,一个企业的架构师要求TPS达到2000,结果性能团队一顿猛如虎的分析优化,最后也给出了生产配置建议,于是生产上就按这个目标去配了软硬件。结果这个系统在线上从来没有超过20TPS。

可笑吧?可笑吗?真不可笑。这就是性能市场的现状,提指标的拍脑袋,做性能实施的拍胸脯,结果却是人员成本、环境成本、时间成本的浪费。

现在有多少企业拿着超过生产TPS 百倍的硬件环境,运行着少得可怜的业务量。我记得之前看一个大家都认识的互联网企业的生产资源数据,从未超过15%的使用率。有人说那都是为业务峰值准备的,行,也说得通,但是在业务峰值的时候,资源使用率就真用得上去了吗?在系统死的时候,有多少的资源其实使用率并不高?有运维经验的可以想想自己的工作经验,有几个系统是因为资源使用率达到100%而死的?

所以,性能项目如果不为真实的生产容量目标服务,那就失去了存在的价值。

前阵子,我去了一趟长沙,跟一个企业的性能团队聊了两三个小时。他们买了工具、买了服务、做了项目,钱花了不老少,结果给出的报告却没有生产是否可以支撑业务容量的结论,而是当前系统的TPS是多少、拐点在哪里、CPU资源使用率在测试环境中是多高这样的描述性报告。

这就是项目目标和结论在真实性能市场中的样子。卖性能工具的企业已经挺多了,而做性能项目的企业却大部分停留在卖人头赚月钱的层面。

真正的性能项目的需求指标是线上不死,由此延伸出的指标细化才是有意义的。而性能项目的结论是如何能不死,对指标的细化一一评估,这样才对得上,不然性能实施中的苦劳都没有意义。

今天先唠这么多,我去看性能参数列表去了,那也是满目疮痍的角落。

这篇关于7D性能项目日记1:你的性能项目真的有需求指标吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/869806

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin