疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...

性能调优整体思路

作为一名团队技术核心,如何让系统跑得通、跑得稳、跑得快是必然会面对的场景。性能分析是一个大课题,不同的架构、不同的应用场景、不同的程序语言分析的方法若有差异,抽象一下大致分为两类:

  • 自底向上:通过监控硬件及操作系统的指标(CPU、内存、磁盘、网络等硬件资源的性能指标)来分析性能问题(配置、程序等问题)。因为用户请求最终是由计算机硬件设备来完成的,做事的是CPU。

  • 自顶向下:通过生成负载来观察被测试的系统性能,比如响应时间、吞吐量;然后从请求的起点由外及里一层一层的分析,从而找到性能问题所在。

不管是自上而下还是自下而上,关键点就是生成负载、监控性能指标。好一点的方式是先用自顶向下的方式解决掉明显的性能问题,再结合自底向上的方式分析更深层次的问题。

性能分析过程

步骤名称

说明

检查RT

模拟用户发起负载后,采用的自顶向下的方式首先分析RT(响应时间)

检查TPS

TPS大时RT小,说明性能良好

检查负载机资源

检查CPU使用率,CPU负载(Load Average)确认是用户CPU占用高还是系统CPU占用高
 前提:确认测试脚本没有性能问题,不会造成结果统计的不准确
 检查内存使用情况,确认并发内存泄漏风险,不会造成结果统计的不准确

判断负载机是否有性能问题

排除负载机的性能问题,确保测试结果可参考

检查Web服务器的资源消耗

1、检查CPU使用率,确认用户CPU与系统CPU占用情况
 2、检查内存使用情况
 3、检查磁盘使用情况
 4、检查占用的带宽
 5、分析Web页面响应的时间组成,确认是什么请求影响了性能

确认是否Web服务器瓶颈

标判断是否是Web服务器硬件性能瓶颈

检查中间件配置

确认是否是此配置问题

检查APP服务器资源消耗

关注CPU、内存、磁盘、IO,判断是否是App服务器硬件性能瓶颈

数据库服务器资源消耗分析

1、CPU消耗,CPU负载
 2、内存消耗
 3、IO繁忙程度
 4、数据库监控

是否是DB性能问题

由监控结果来判断是否是DB性能问题

是否SQL问题

1、定位最不合理的SQL占比索引是否正常引用
 2、检查共享SQL是否合理范围
 3、检查解析是否合理
 4、检查数据ER结构是否合理
 5、检查数据热点问题
 6、检查数据分布是否合理

其他

比如网络阻塞、磁盘IO瓶颈、热点等












 .NET性能调优四天集训

3月11日~14日,架构师Zilor老师将带领大家开启.NET性能调优4天突击营,Zilor老师拥有12年软件开发经验,7年大型互联网架构经验,此次,他将会为大家复盘.NET性能调优的经典场景,为大家提供高效、接地气的解决方案,让您迅速成为面试官或同事眼中的“老司机”。

课程原价599元,本号粉丝一律0元学(免费名额仅499名),长按扫码进班级群。

第一天:如何使用VS进行性能排查    
  • 算法对性能的影响

  • 缓存对性能的作用

  • 锁的问题

  • 响应与吞吐

  • Performance Diagnostic Tools

第二天:ASP.NET Core 该如何优化    
  • 内存缓存与响应缓存中间件

  • 响应压缩

  • 负载测试与压力测试

第三天:数据库的优化该怎么做    
  • SQL语句优化

  • 索引

  • 分区、分表与分库

  • 读写分离

第四天:如何使EF Core更加高效    
  •  延迟加载与贪婪加载

  • IQueryable与IEnumerable的区别

  • 实体追踪

  • 查询优化

  • 标量函数

进群享四大福利

福利1:送价值399元.NET Core视频合集

福利2:送价值299元微服务视频合集

福利3:送价值499元数据结构算法视频合集

福利4:赠送价值199元Redis视频合集

扫码获取以上福利

仅限前199名

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

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

相关文章

Anaconda创建python虚拟环境

在创建虚拟环境之前首先我们需要打开命令终端:Win R 输入cmd 或者直接打开Anaconda Prompt(Anaconda) pycharm下载历史版本地址:https://www.jetbrains.com/pycharm/download/other.html Anaconda下载历史版本地址:ht…

[蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-&g…

梯度下降与线性回归

对于代价函数: loss∑i(y^−yi)2loss\sum_i{(\hat{y}-y_i)}^2loss∑i​(y^​−yi​)2 loss∑i(w∗xib−yi)2loss\sum_i{(w*x_ib-y_i)}^2loss∑i​(w∗xi​b−yi​)2 最常见的代价函数:均方差代价函数(Mean-Square Error,MSE&…

.NET Core开发实战(第21课:中间件:掌控请求处理过程的关键)--学习笔记(下)...

21 | 中间件:掌控请求处理过程的关键如果在 Map 的时候逻辑复杂一点,不仅仅判断它的 URL 地址,而且要做特殊的判断的话,可以这么做把判断逻辑变成一个委托我们要判断当我们的请求地址包含 abc 的时候,输出 new abcapp.…

英伟达3060Ti安装GPU版本TensorFlow2.X和Pytorch

查看Python与TensorFlow对应版本 安装GPU版本的TensorFlow的时候,我们需要考虑的一个问题是Python版本与TensorFlow版本的对应关系,可以参考下面这个链接: Python对应TensorFlow CPU版本 GPU版本 查看显卡驱动对应的CUDA版本并且下载安装 …

200行代码,7个对象——让你了解ASP.NET Core框架的本质[3.x版]

2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为《ASP.NET Core框架揭秘》的分享。在此次分享中,我按照ASP.NET Core自身的运行原理和设计思想创建了一个 “迷你版” 的ASP.NET Core框架&…

逻辑回归(二)

逻辑回归 在学习逻辑回归之前我们先回顾一下线性回归。线性回归解决的是回归问题,简单来说就是,我们需要找到一个函数,这个函数需要尽可能的拟合所有训练集的样本点。 逻辑回归解决的是分类问题,它的目标是找到一个函数&#x…

上元节的灯会(灭)-区间dp

题目背景 上元节的庙会上,牛宝靠自己的聪明才智成功破解了花灯阵,点亮了在场所有花灯,但他没料到的是这个游戏包含AB两个项目,A项目就是点亮所有花灯,而B项目则是熄灭所有花灯。不过点亮的是花灯阵,熄灭的…

Asp.Net Core 中IdentityServer4 授权中心之应用实战

一、前言查阅了大多数相关资料,搜索到的IdentityServer4 的应用文章大多是比较简单并且多是翻译官网的文档编写的,我这里在 Asp.Net Core 中IdentityServer4 的应用分析中会以一个电商系统架构升级过程中普遍会遇到的场景进行实战性讲述分析,…

交通标志识别项目教程

项目结构图 下载好项目压缩包后解压,得到以上的文件,首先将画红圈的文件删除(如果有) 安装软件 安装Anaconda 安装Pycharm 安装格式工厂 在上图中这个位置输入cmd回车,即可打开命令终端。用这样的方式打开命令终端…

C# 视频监控系统

去过工厂或者仓库的都知道,在工厂或仓库里面,会有很多不同的流水线,大部分的工厂或仓库,都会在不同流水线的不同工位旁边安装一台电脑,一方面便于工位上的师傅把产品的重要信息录入系统,便于公司系统数据采…

sklearn svm如何选择核函数_机器学习之支持向量机多种核模型对比

机器学习xueyifeiyun1989zx,公众号:围着围巾的小黑机器学习之监督学习实战前文我们提到机器学习中的监督学习,其中有一个模型是我们提到的但是没有训练测试的,叫做支持向量机(简称SVM)。支持向量机也是监督学习里面一个非常容易理…

程序员过关斩将--从每秒6000写请求谈起

点击上方“蓝字”关注我们菜菜哥,紧急求助呀怎么回事?产品经理砍你了?没有,只是写了个新项目,上线就被压垮了什么功能,这么强悍?一个记录用户观看视频进度信息的功能那如果用户基数大&#xff0…

批量将PPM格式图片转化为JPG格式

将PPM格式图片转化为JPG格式 做图像识别的时候数据集常常是ppm格式的,虽然不影响建模训练,但是我们电脑往往不支持ppm格式的图像展示。 比如到做交通标志识别的时候用到的BelgiumTS交通数据集或者德国GTSRB数据集 下载后得到都是ppm格式的图像。 格式转…

Magicodes.IE 2.2里程碑需求和建议征集

简介Magicodes.IE是导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html。已加入NCC开源组织。Magicodes.IE 2.0发布Github:https://github.com/dotnetcore/Magicodes.IE码云(手动同步,不维护…

交通标志识别教程(二)

项目结构图 下载好项目压缩包后解压,得到以上的文件,首先将画红圈的文件删除(如果有) 安装软件 解压软件包 安装Anaconda 直接下一步,到了这个页面全部勾选,否则不会添加添加环境变量。 安装Pycharm …

深度长文:Power Automation 帮助企业实现数字化转型

01自动化始于您在Ignite 2019上,我们宣布将Flow更改为Power Automate,并在UI Flow连接器的公开预览中引入了机器人流程自动化(RPA)。我们对几种激动人心的功能感到兴奋,这些功能将在今年全面上市,并想花一点…

什么样的女生适合学计算机?

我需要在这一行中加一些字数,为什么呢?因为我的字数不够300字,无法声明原创,所以我会在这里加一些字数,它们是白色的,你应该看不到,如果你此刻看到了,那你真的太机智了。300字&#…

ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)

如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,获取最新干货推送:)人生苦短,我选Python引言前文传送门小白学 Python(1):开篇接触一门新的语言,肯定要先了解它的基础数据类型。啥…

如何将项目上传到github详细完整版

今天介绍如何利用pycharm创建一个新的项目,然后将项目上传到github,以便日后的学习记录,和版本管理。比如现在我想创建一个项目专门用来学习和研究时间序列算法。 创建虚拟环境 # 创建一个新的虚拟环境 conda create -n TimeSeries python3…