当前位置: 首页 > news >正文

linux性能分析(五)如何学习linux性能优化

一   如何学习linux性能优化

强调: 由于知识'记忆曲线'以及'某些知识点不常用',所以一定要注重'复习'思考: 如何进行'能力转义'以及'能力嫁接'?  --> 真正站在巨人的'肩膀'上性能调优的'目的': 不影响'系统稳定性'的资源'最大'利用化补充: 性能分析不能'脱离环境'侃侃而谈,了解基本的'性能基线'切记: 千万不要把性能'工具'当成学习的'全部',应消除干扰,专注于'问题本身'性能优化不光是'解决问题'或者是'降低成本',还有一个方向是 '提升' 用户体验

①  性能优化的困惑

人性的'弱点': 面对困难的'勇气'和'决心'

②   性能指标是什么?

性能'指标'概念: 高并发 '=>' 吞吐   响应快 '=>' 延时

观察角度: '应用负载' 和 '系统资源' 的'视角'

③   性能优化需要什么基础

重点: '操作系统'、'计算机原理',工作'N'年后才明白'基础'的'重要性'建议: 如果'不具备'下面的能力,建议暂时不要'深入'探究,否则就会'走马观花',徒增烦恼

④  学习的重点是什么?

+++++++++++  "立个 flag"  +++++++++++1、建立'整体'性能的'全局观'2、理解最'基本'的几个'系统知识原理'3、掌握Linux 性能'工具图谱'的熟练应用

布伦丹·格雷格 大师勾勒的Linux性能工作图谱

讲解'思路': 我们先从'每类资源'开始,案例中会逐步'穿插各类资源瓶颈'的'交叉'情况

⑤  怎么学习更高效

技巧'一':虽然'系统的原理'很重要,但在刚开始一定'不要'试图抓住'所有的实现'细节说明: 很大'一部分人'不是科班出身,计算机的'基础的素养'可能部分缺失,所以一开始'不要深陷'细节

说明: 不同'教育'背景、不通'工作'环境的it人员学习的'深度'不一样

 

技巧'二': 边学边实践,通过'大量的案例'演习'掌握' Linux 性能的分析和优化 --> '实践出真知'

技巧'三': 勤'思考'、多'反思 [复习回顾]'、善'总结'、多问'为什么'诶主: 在'交流'中加深理解、并进行领域'扩展'学习

说明: 树立 'flag'

困惑:不理解把cpu跑满了'好还是不好'?备注: 感觉'cpu空闲'很多很'浪费资源',但是'平时优化'的时候,都是要'降低'cpu使用率

⑥   补充

1、简化版的'性能优化'排查'思路'遗留:1) 程序是使用'单核'还是'多核'  --> 'redis 单线程'2) 判断内存'不足' --> '业务实际需要'还是'内存溢出'3) cpu 核的使用'不均衡' --> 只有'某个 100%'4) 深入理解'/proc'目录下的'文件'遇到问题时会'Google 上网'搜索解决办法,但是'不知道原理',经常'胡乱'修改,'试错成本'太大

疑惑: '代码开发基础'在'性能优化工作'中到底能'占多少比重'?

思考: 关于'工具'的选择?

思考: 各种'软件'实际的性能优化'场景'? --> '各种组件'重点: mysql 性能'优化' --> '慢sql'、'索引'

思考: gitlab服务器在'push和pull'的时候存在'20%左右'的可能'连接不上'?

认识: '同一个指标'放到'不同场景'里的效果可能是'差别巨大'的

疑惑: '操作系统'和'内核原理'要学习到什么程度?

深度学习 'deeping learning'的开发中: 遇到的'困难和疑惑'

思考: 为什么应用程序只'祸祸'某一个CPU,使用率达到'100%'?备注: 'redis' 只使用'单核'、而 Memcached 可以使用多核

疑惑: '压测'时,CPU利用率很'低'?

思考: 作为'软件性能测试人员'如何学好'性能调优'?备注: 不能'放低'对自己的'要求'

疑惑: 性能分析的'目的'?

说明: '重启 restart' 大法 '治标不治本'

 

问题点: 调用函数'阻塞'导致性能问题

说明: 大厂'面试'也越来越关注'性能优化'?备注: 后续还是要'有针对性'修炼'内功'

思考: 测试人员的'困惑'?

思考: 对于'SRE'运维人员?

思考: 集群'负载'排查?说明: 服务一般都是'集群形式',多'实例'构成的

 

现象: 系统运行很'慢',我登录上去也'很慢'、操作也'慢',执行top要'很久'才有结果思考: 瞬间'oom'有何方式可以'捕获'思考: 遇到过内存泄露问题,程序运行过程中'内存一直增长',但是自己难以定位到到底是那里除了问题?

相关文章:

linux性能分析(五)如何学习linux性能优化

一 如何学习linux性能优化 强调: 由于知识记忆曲线以及某些知识点不常用,所以一定要注重复习思考: 如何进行能力转义以及能力嫁接? --> 真正站在巨人的肩膀上性能调优的目的: 不影响系统稳定性的资源最大利用化补充: 性能…...

1402. 做菜顺序 --力扣 --JAVA

题目 一个厨师收集了他 n 道菜的满意程度 satisfaction ,这个厨师做出每道菜的时间都是 1 单位时间。 一道菜的 「 like-time 系数 」定义为烹饪这道菜结束的时间(包含之前每道菜所花费的时间)乘以这道菜的满意程度,也就是 time[i…...

Springboot踩坑-request body重复读问题

背景 在一次业务开发中,由于需要在拦截器中对一个http请求中request body内容做解析和判断,所以用了httpServletRequest的getInputStream解析了request body内容,之后导致了拦截器处理成功后,原来的业务接口处报request body not…...

C++ 类和对象(六)赋值运算符重载

1 运算符重载 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数, 也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。 函数名字为:关键字operator后面接需…...

rust学习-trait std::cmp::PartialEq、Eq、PartialOrd、Ord

PartialEq 介绍 pub trait PartialEq<Rhs = Self> whereRhs: ?Sized, {// Required method,后文有讲解这个注释fn eq(&self, other: &Rhs) -> bool;// Provided method,后文有讲解这个注释fn ne(&self, other: &Rhs) -> bool {... } }x.eq(y)…...

k8s pod根据指标自动扩缩容举例

目录 基于 内存 指标实现pod自动扩缩容 举例配置 基于 cpu 指标实现pod自动扩缩容 举例配置 基于请求数&#xff08;次/秒&#xff09; 指标实现pod自动扩缩容 举例配置 基于 http请求响应时间 (ms) 指标实现pod自动扩缩容 举例配置 基于 Java GC暂停时间 (ms) 指标实现…...

深、浅拷贝之间的关系

深、浅拷贝之间的关系 什么是赋值 赋值是将某一数值或对象赋给某个变量的过程&#xff0c;分为下面 2 部分 基本数据类型&#xff1a;赋值&#xff0c;赋值之后两个变量互不影响引用数据类型&#xff1a;赋址&#xff0c;两个变量具有相同的引用&#xff0c;指向同一个对象&…...

服务器数据恢复-某银行服务器硬盘数据恢复案例

服务器故障&分析&#xff1a; 某银行的某一业务模块崩溃&#xff0c;无法正常使用。排查服务器故障&#xff0c;发现运行该业务模块的服务器中多块硬盘离线&#xff0c;导致上层应用崩溃。 故障服务器内多块硬盘掉线&#xff0c;硬盘掉线数量超过服务器raid阵列冗余级别所允…...

仪器器材经营小程序商城的作用是什么

互联网发展下&#xff0c;数字化转型已经成为常态&#xff0c;仅依赖传统线下经营模式将很难再增长。 作为产品销售及客户维护度高的仪器器材行业&#xff0c;拥有自营商城平台是必要的&#xff0c;不仅可以解决以上难题&#xff0c;还利于打造自身品牌多渠道传播&#xff0c;…...

京东数据分析:2023年9月京东洗烘套装品牌销量排行榜!

鲸参谋监测的京东平台9月份洗烘套装市场销售数据已出炉&#xff01; 根据鲸参谋平台的数据显示&#xff0c;今年9月份&#xff0c;京东平台洗烘套装的销量为7100&#xff0c;环比下降约37%&#xff0c;同比增长约87%&#xff1b;销售额为6000万&#xff0c;环比下降约48%&#…...

论文阅读-多目标强化学习-envelope MOQ-learning

introduction 一种多目标强化学习算法&#xff0c;来自2019 Nips《A Generalized Algorithm for Multi-Objective Reinforcement Learning and Policy Adaptation》本文引用代码全部来源于论文中的链接。主要参考run_e3c_double.py文件 1 总体思想 1.将输入中加入多目标的偏…...

【原创】【考法总结】指针*与++结合的题目考法总结

代码均已调试出结果&#xff0c;放心食用&#xff0c;大致总共5种考法 【理论铺垫】①a[i]恒等价于(ai)即*(&a[0]i)&#xff1b;i类似偏移量&#xff08;别忘a代表数组首元素地址即&a[0]&#xff09; ②*(&a[i])恒等价于a[i]&#xff1a;&a[i]表示a[i]的地址&a…...

react dispatch不生效的坑

一、前言 最近写react antd项目&#xff0c;在A页面中使用了dispatch方法&#xff0c;然后B页面中嵌套A页面&#xff0c;没有问题&#xff1b; 但是在C页面中嵌套A页面的时候&#xff0c;就发现dispatch方法没有执行&#xff0c;也不报错&#xff0c;就很奇怪&#xff1b; 还…...

Mingw快捷安装教程 并完美解决出现的下载错误:The file has been downloaded incorrectly

安装c语言编译器的时候&#xff0c;老是出现The file has been downloaded incorrectly&#xff0c;真的让人 直接去官网拿压缩包&#xff1a;https://sourceforge.net/projects/mingw-w64/files/ &#xff08;往下拉找到那个x86_64-win32-seh的链接&#xff0c;点击后会自动…...

OpenGL —— 2.6、绘制一个正方体并贴图(附源码,glfw+glad)

源码效果 C源码 纹理图片 需下载stb_image.h这个解码图片的库&#xff0c;该库只有一个头文件。 具体代码&#xff1a; vertexShader.glsl #version 330 corelayout(location 0) in vec3 aPos; layout(location 1) in vec2 aUV;out vec2 outUV;uniform mat4 _viewMatrix; u…...

JavaWeb从入门到起飞笔记——导学课程

学完这一节&#xff0c;我不知道学Web开发究竟能干什么&#xff1f;你知道吗&#xff1f; 以下是黑马程序员Java从入门到起飞的笔记 一、学完Javaweb能干什么&#xff1f; 学完Java后我们可以独立开发一些后台管理系统&#xff0c;例如CRMER器&#xff0c;京东和淘宝&#x…...

【LeetCode:1402. 做菜顺序 | 动态规划 + 贪心】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

基于FPGA的图像拉普拉斯变换实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a vivado2019.2 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…...

高校教务系统登录页面JS分析——巢湖学院

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…...

人工智能、机器学习、深度学习的区别

人工智能涵盖范围最广&#xff0c;它包含了机器学习&#xff1b;而机器学习是人工智能的重要研究内容&#xff0c;它又包含了深度学习。 人工智能&#xff08;AI&#xff09; 人工智能是一门以计算机科学为基础&#xff0c;融合了数学、神经学、心理学、控制学等多个科目的交…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...