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'有何方式可以'捕获'思考: 遇到过内存泄露问题,程序运行过程中'内存一直增长',但是自己难以定位到到底是那里除了问题?

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

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

相关文章

【数据结构】顺序表实现通讯录

前言 在上一节中我们实现了顺序表,现在我们将使用顺序表完成通讯录的实现。(注:本人水平有限,“小屎山”有些许bug,代码冗余且语无伦次,望谅解!😅) 文章目录 一、数据结构…

Linux进程与线程的内核实现

进程描述符task_struct 进程描述符(struct task_struct)pid与tgid进程id编号分配规则内存管理mm_struct进程与文件,文件系统 进程,线程创建的本质 clone函数原型线程创建的实现进程创建的实现 总结 进程描述符task_struct 进程描述符(st…

YOLOv5算法改进(19)— 手把手教你去更换NMS(DIoU-NMS/CIoU-NMS/EIoU-NMS/GIoU-NMS/SIoU-NMS)

前言:Hello大家好,我是小哥谈。YOLOv5中的NMS指非极大值抑制(Non-Maximum Suppression),它是一种用于目标检测算法中的后处理技术。在检测到多个重叠的边界框时,NMS可以帮助选择最佳的边界框。NMS的工作原理是首先根据预测边界框的置信度对它们进行排序,然后从置信度最高…

clion本地调试nginx-1.22.1

1 概述 nginx是一个多进程模型的流量代理软件,在本地调试时需要将它设置为单进程模式。 2 下载nginx源码 mkdir -p /opt/third-party cd /opt/third-party wget http://nginx.org/download/nginx-1.22.1.tar.gz tar xf nginx-1.22.1.tar.gz ls /opt/third-party…

SLAM中相机姿态估计算法推导基础数学总结

相机模型 基本模型 内参 外参 对极几何 对极约束 外积符号 基础矩阵F和本质矩阵E 相机姿态估计问题分为如下两步: 本质矩阵 E t ∧ R Et^{\wedge}R Et∧R因为 t ∧ t^{\wedge} t∧其实就是个3x3的反对称矩阵,所以 E E E也是一个3x3的矩阵 用八点法估计E…

JVM第十六讲:调试排错 - Java 线程分析之线程Dump分析

调试排错 - Java 线程分析之线程Dump分析 本文是JVM第十六讲,Java 线程分析之线程Dump分析。Thread Dump是非常有用的诊断Java应用问题的工具。 文章目录 调试排错 - Java 线程分析之线程Dump分析1、Thread Dump介绍1.1、什么是Thread Dump1.2、Thread Dump特点1.3、…

算法通过村第十六关-滑动窗口|青铜笔记|滑动很简单

文章目录 前言滑动窗口的基本思想入门题目练习子数组最大平均数最长连续递增序列 总结 前言 提示:我宁愿做自己,做卑微的自己,也不愿做别人,无论那会多么快乐。 --《美丽新世界》 我们在数组和链表的部分就已经接触到了双指针的思…

实现vue项目和springboot项目前后端数据交互

1、安装node.js 太高版本的win7不支持 这里安装node-v12.16.2-x64.msi,指定安装位置后直接按下一步就可以。npm是node内置的工具 这里配置npm的镜像cnpm(提高下载速度,以后用到npm的命令都可以用cnpm命令替换)不指定cnpm版本使用…

【USMA】N1CTF2022-praymoon

前言 本题主要利用 USMA 解题,当然还有其他做法,暂时不表 程序分析 启动脚本就不看了,该开的保护都开了。看下文件系统初始化脚本: #!/bin/shmkdir /tmp mount -t proc none /proc mount -t sysfs none /sys mount -t devtmpf…

JS加密/解密之闭包的运用

深入探讨JavaScript闭包的演变与应用 摘要: 本文将深入探讨JavaScript闭包的概念、特性以及其在实际开发中的应用。我们将从闭包的起源开始,探讨它在JavaScript编程中的重要性,并通过实例展示闭包在不同场景下的灵活应用。 引言 JavaScrip…

CSS3 渐变

CSS3 渐变可以让你在两个或多个指定的颜色之间显示平稳的过渡。 CSS3渐变有两种类型:线性渐变(Linear Gradients)和径向渐变(Radial Gradients)。 线性渐变(Linear Gradients): 线性…

点击查看详情 | 网页版微信客户管理系统如何操作试用?

微信作为我们日常生活中最常用的社交应用之一,早已成为我们与朋友、家人和同事保持联系的重要工具,也是营销引流的重要平台。 通过微信营销,可以比较精准定向亲近用户。而微信的功能并没有很能满足做微信营销的人群,所以我们需要借…

linux复习笔记02(小滴课堂)

linux下输入输出错误重定向&#xff1a; 输入重定向&#xff1a;< 一个大于号是进行了覆盖。 两个大于号是追加。 输出重定向可以用于以后日志打印。 错误重定向&#xff1a; 错误重定向是不把信息打印到屏幕上而是打印到指定文件中去&#xff1a; 输出重定向其实是用的1…

基于TCP的RPC服务

TCP服务器上的RPC&#xff0c;通过创建一个服务器进程监听传入的tcp连接&#xff0c;并允许用户 通过此TCP流执行RPC命令 -module(tr_server). -author("chen"). -behaviour(gen_server).%% API -export([start_link/1,start_link/0,get_count/0,stop/0 ]).-export(…

Android问题笔记 - 关于SuperNotCalledException报错异常信息的解决方案

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

屏幕录像推荐:Apeaksoft Screen Recorder 中文 for mac

Apeaksoft Screen Recorder 是一款功能强大的屏幕录制软件&#xff0c;它允许用户在 Windows 和 Mac 系统上捕捉和录制屏幕活动。无论是记录游戏过程、创建教学视频、制作演示文稿还是捕捉在线流媒体内容&#xff0c;该软件都提供了丰富的功能和工具。 以下是 Apeaksoft Scree…

【c++Leetcode】141. Linked List Cycle

问题入口 思想&#xff1a;Floyds Tortoise and Hare 这个算法简单来说就是设置一个慢指针&#xff08;一次移动一个位置&#xff09;和一个快指针&#xff08;一次移动两个位置&#xff09;。在遍历过程中&#xff0c;如果慢指针和快指针都指向同一个元素&#xff0c;证明环…

JAVA基础-String StringBuffer 和 StringBuilder 类(9)

目录 String创建字符串字符串长度连接字符串创建格式化字符串String 方法 **StringBuilder**StringBuffer String 创建字符串 String s1 "Runoob"; // String 直接创建 String s2 "Runoob"; // String 直接创建 String s3 s…

C语言实现模拟 strcmp 字符串比较函数,实现字符串大小的比较

完整代码&#xff1a; // 模拟 strcmp 字符串比较函数&#xff0c;实现字符串大小的比较 #include<stdio.h> //strcmp函数是两个字符串自左向右逐个字符相比&#xff08;按 ASCII 值大小相比较&#xff09;&#xff0c;直到出现不同的字符或遇 \0 为止&#xff0c;如果字…

【RNA folding】RNA折叠算法与生物物理约束

文章目录 RNA折叠RNA folding representation1 DP for simple folds1.1 Nussinov Algorithm objective1.2 energy constraints1.3 The key idea of the algorithm 2 DP for stacking and complex foldsStochastic context free grammars 来自Manolis Kellis教授&#xff08;MIT…