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

本文主要是介绍疫情期间,千万级系统宕机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名

这篇关于疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构