团队管理之性能实施团队日志9

news2024/11/15 21:54:17

最近项目进入胶着状态。
混合场景在有些项目组里已经可以开始了,但还是有两三个项目组现在是完全没办法混合起来的。
本周计划是把基准测试、容量测试跑完,稳定性测试每个项目组至少能跑一遍。
但是从进度上来看,容量测试至少有四个系统不能跑完了。
直到现在,还有问题。这周的问题感觉每个系统每天都会出现新问题。
在这里插入图片描述

从统计的问题来看,加上没有放到 Jira 上的问题,已经近两百个了。
按8个系统平均来算,一个系统已经出现了20多个。
据我的感觉,还有一些琐碎的问题没有提的,像这个表缺个索引,那个参数又配置错了。修改起来很快的。估计要超过每个系统 30 个性能问题。

这在一个项目中已经非常难得见了。
互联网架构用来做金融,本身带来的问题,也非常明确地体现出来了。业务逻辑的复杂性和互联网架构的耦合带来的分析问题的复杂度,也非常明显。
从技术上来说,真没有多少新东西。只是从架构和分析的思路上,逻辑要重新画一下。
在这里插入图片描述

以上只是支付系统的一部分逻辑。
再简化一下拓扑图就像下面这样。

这上面我已经把挡板都不画了。数据流转的逻辑上大概就是这样了。而这里面光渠道总线就已经有五个模块。每个模块中又有三个机器左右,又有主从,或者读写分离等等。所以在分析的时候逻辑就变得非常重要了。

面对一个系统,先画逻辑图对理解分析的思路很有帮助。

昨天有一个项目的 TPS 死活上不去,CPU 消耗只能到 30 %左右,几个同事分析了老半天。最后的时候也打了threaddump,也看到了阻塞在log写的时候。但是翻了下代码,觉得写法是没有问题的呀。

他们做了一个动作是把tomcat的线程数加大,我正好上楼说另一个事情,他们跟我说了一下。我听说他们的前面的分析思路觉得挺靠谱的,但是提到增加线程数,我就不能理解了。

于是我就停下来看了一眼他们的 thread 状态。看到有大量的是在 waiting on monitor 的状态。我就问他们为什么增加线程数?他们觉得这样也许可以把CPU用上去。可是我说你们这等待的就这么多了,还加线程数,不是等得更多了吗?
所以分析之后的优化还是要往合理的方向上去。我说你们都看到了log写导致了等待出现。那就把log写的逻辑分析一下。我让他们把代码翻来看看,结果看到了配置的同步log。也没有配置写buffer。我让他们先把log写降下来,那最快的验证的方式就是把log级别调高。原来是info,我说调到error,先验证下方向是不是对的。

结果一调到error,同样的场景,TPS就增加了4倍,CPU消耗高达70%。然后优化的方向就很明确了,就是让log写更快。异步是一种方式,如果云平台的IO不行,可以考虑换存储,也可以考虑加buffer。也可以这些步骤一起来做。

总之现在TPS是在单实例就可以达到要求了,从业务上说没有了风险,后面怎么做得更细致,那就看对技术的执着程度了。

昨天跟团队里的人讨论了分析思路要清晰地事情,我再三强调,分析思路就清晰明确,不要因为怀疑而做动作。性能分析绝不是几个人讨论能出结果的,而是数据的一层层剥开。

今天下午,说到核心系统有个交易要 300ms 完成。我一看,怎么这么长?核心系统要是这么长,那前面的渠道怎么办?经过四五层之后,随便加加也会超过1秒2秒的了。而他们给自己定的目标是1秒以内。我觉得完全没有从架构上考虑前端的感受。借着讨论其他sql的机会,我把那个核心库的慢 SQL 也拿下来看了一眼(现在慢 SQL我让数据中心配置到 100ms 以上就打)。发现了核心业务系统中有好多慢的 SQL。我跟他们说了一下,他们现在开始考虑分析慢sql的逻辑去了。

再说沟通,性能组的沟通往往是矩阵式的。而不是单线的沟通,所以就要求做性能的人有足够的耐心、丰富的技巧、扎实的技术。在我现在的团队中,大概的组织结构是这样。
在这里插入图片描述

性能组成员跟其他组成员都会直接地沟通。可怕的不是性能组成员1<-〉项目组1成员1这样的沟通模式。而是链路式的沟通。

因为项目组之间是有依赖关系的,所以沟通关系有可能是这样的。
在这里插入图片描述

单个人的沟通看起来还能接受。但是当每个人都沟通的时候,可能就会乱了。
在这里插入图片描述

在项目中,项目组之间的沟通耗费的精力和时间往往比项目本身更多。
在这时候,PM 就要出马了,减少沟通中出现的技术误差和情绪误解。
性能组的 PM 要干的不只是沟通各项目组的 PM,往往有些决策还要依赖总监或者科技部老大,所以这些沟通都要性能组 PM 来做。

所以 PM 的职责,不仅是把握技术方向,还要做沟通,而沟通将占去性能组PM大部分的精力。

今天先写到这里吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

各类动态路由协议汇总简介

目录 一、前言 二、OSPF协议 &#xff08;一&#xff09;OSPF是什么 &#xff08;二&#xff09;OSPF的工作原理 &#xff08;三&#xff09;OSPF的特点 &#xff08;四&#xff09;OSPF的使用 &#xff08;五&#xff09;OSPF的优点 &#xff08;六&#xff09;总结 …

ROS——从深度图转换到octomap(C++)

文章目录 介绍环境准备三维灰度栅格图三维RGB栅格图对点云进行过滤处理参考介绍 八叉树是用于在3D视觉中细分空间的数据结构。每个立方体都可以逐级地细分为8个子立方体,直到达到了给定的最小体积(体素)尺寸。且该最小体积(体素)决定了八叉树的分辨率。 octomap的作用:…

代码随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期|714.买卖股票的最佳时机含手续费

LeetCode309.最佳买卖股票时机含冷冻期 动态规划五部曲&#xff1a; 1&#xff0c;确定dp数组以及下标的含义&#xff1a;dp[i][j]&#xff0c;第i天状态为j&#xff0c;所剩的最多现金为dp[i][j]。出现冷冻期之后&#xff0c;状态其实是比较复杂度&#xff0c;例如今天买入股…

接口自动化【七】__包装响应结果的数据为key-value

文章目录 前言 一、本章学习的思路 二、用接口新建商品_使用步骤 ​​​​​​​步骤一&#xff1a;先用抓包的方式拿到新建商品的接口 步骤二&#xff1a;我们先用单接口的形式&#xff0c;把这个商品添加成功 三、处理响应接口_&#xff08;包装响应结果的数据为&#xf…

Flume自定义拦截器 - ETL拦截器和分类拦截器

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 目录 一、拦截器&#xff08;Interceptor&#xff09;和选择器&#xff08;Selector&#xff09; 拦截器&#xff08;Interceptor&#xff09; 选择器&#xff08;Selector&#xff09; 二、自定…

【机器学习 | 深度学习】Colab是什么?以及如何使用它?

文章目录 一、介绍二、如何使用 Colaboratory 创建代码三、实例测试 一、介绍 Colaboratory&#xff08;简称为Colab&#xff09;是由Google开发的一种基于云端的交互式笔记本环境。它提供了免费的计算资源&#xff08;包括CPU、GPU和TPU&#xff09;&#xff0c;可让用户在浏…

本地部署gitlab学习git使用

文章目录 前言一、安装gitlab二、nginx反向代理三、本地配置hosts&#xff0c;自定义域名四、配置gitlab独立ngxin实现域名访问五、其他总结 前言 最近想学习git使用了&#xff0c;在本地部署一个gitlab社区版玩玩吧~ gitlab只能部署在liunx系统上面&#xff0c;可以使用云服务…

TLD2314EL-ASEMI代理英飞凌汽车芯片TLD2314EL

编辑&#xff1a;ll TLD2314EL-ASEMI代理英飞凌汽车芯片TLD2314EL 型号&#xff1a;TLD2314EL 品牌&#xff1a;Infineon(英飞凌) 封装&#xff1a;SSOP-14-EP-150mil 特性&#xff1a;LED驱动、汽车芯片 宽温度范围&#xff1a;-40C~150C 封装&#xff1a;SSOP-14&…

虚拟云网络系列 | 如何将 NSX NVDS 迁移到 VDS

1.NVDS 迁移到 VDS 的主要原因 在早期的 vsphere6.7 的版本上安装 NSX-T 采用的都是 NVDS&#xff0c;而随着 NSX 版本的升级&#xff0c;从 NSX 4.0 开始&#xff0c;NSX 已经不在支持在 ESXi 上部署 NVDS&#xff0c;仅能使用 vsphere7.0 上的 VDS。所以&#xff0c;对于早期…

linux系统编程-----下

linux网络编程 tcp通信 Berkeley Socket TCP/IP协议族标准只规定了网络各个层次的设计和规范&#xff0c;具体实现则需要由各个操作系统厂商完成。最出名的网络库由BSD 4.2版本最先推出&#xff0c;所以称作伯克利套接字&#xff0c;这些API随后被移植到各大操作系统中&…

Android Key Hash生成

在接入FaceBook 安卓第三方登录的时候&#xff0c;就需要获取Debug Android Hash Key。 Android Hah Key有两种&#xff0c;即开发密钥散列和发布密钥散列 获得散列值需要借助openssl工具。 下载并配置openssl 1、下载 到https://code.google.com/archive/p/openssl-for-win…

校验表格里的表单

<template><el-dialogtitle"收货地址":visible.sync"dialogFormVisible">{{ form }}<el-formref"form":model"form":rules"rules"label-width"100px"><el-form-itemlabel"活动名称&quo…

Roop:单图离线版软件包及使用方法!

你们要的“单图换脸”离线一键运行版来了。Roop发布几十个小时后&#xff0c;马不停蹄地搞了Colab在线版。其实这东西都挺好的&#xff0c;又快又方便&#xff0c;几乎没有任何硬件要求&#xff0c;点一点就可以搞定了。但是它有一个问题&#xff0c;就是没有“魔法” 就没法使…

国际电商网站APP开发-国际电商网站,跨境方案

跨境电商一种在国际贸易中进行电子商务的策略。它涉及到在线销售产品或服务给海外消费者&#xff0c;通常涉及到国际支付、物流和海外市场营销的问题。以下是一些跨境电商方案的例子&#xff1a; 跨境电商平台&#xff1a;建立自己的跨境电商平台&#xff0c;提供海外消费者便捷…

Docker安装达梦(DM)关系型数据库,DBeaver远程连接使用数据库

Docker安装达梦&#xff08;DM&#xff09;关系型数据库 首先你得去达梦数据库官网注册一个账号。 下载数据库部署包 官网&#xff1a;https://www.dameng.com/ 然后找到需要的数据库&#xff1a; 官网试用地址&#xff1a;https://eco.dameng.com/tour/?source_urlht…

ansible使用剧本操作硬盘

在一个节点添加一块20G的硬盘 通过ansible剧本判断是否存在第二块硬盘&#xff0c;且硬盘的大小大于10G 满足条件&#xff1a; 在此硬盘创建一个分区&#xff0c;大小为10G 使用此分区创建一个卷组 从此卷组中创建一个逻辑卷 将此逻辑卷格式化为xfs 将此逻辑卷挂载至/mountdir目…

上海28岁程序员失业,感叹:测试估计没戏了,想去卖点煎饼果子养家~

程序员危机&#xff0c;似乎是一个跨不过去的坎&#xff0c;最近&#xff0c;在职场论坛上看到了一位魔都程序员被裁的帖子&#xff0c;现在因为“互联网寒冬”不少程序员优化被裁。 帖子具体内容如下&#xff1a;因为疫情&#xff0c;老大哥所在部门被砍掉了&#xff0c;部门所…

科技项目验收测试报告获取有什么注意事项?作用都有哪些?

当科技项目通过测试并准备交付验收时&#xff0c;需要编写科技项目验收测试报告。科技项目验收测试报告是项目验收的重要部分&#xff0c;是对项目质量的一种客观证明。获取科技项目验收测试报告需要注意什么呢?本文从专业角度探讨这个话题&#xff0c;并介绍验收测试报告的作…

【数据分享】1929-2022年全球站点的逐日降水量(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;说到常用的降水数据&#xff0c;最详细的降水数据是具体到气象监测站点的降水数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2022年全…

069:cesium围绕一个固定点自动左右旋转

第069个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置一个固定点为中心点,通过lookAtTransform来固化点,通过监听clock,来设置自动旋转。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共79行)相关…