随笔分类 - 深挖计算机基础
摘要:一、缓存命中率 1、引子 1、我们想利用缓存来提升程序的运行效率,应该怎么评估这个效果呢? 用衡量缓存好坏的指标 2、有没有哪个指标可以衡量缓存使用的好坏呢? 缓存命中率 3、什么是缓存命中率? 所谓缓存命中率,是指直接通过缓存获取数据的请求次数,占所有数据请求次数的百分比。命中率越高,表示使用缓存
阅读全文
摘要:一 内存性能指标 1、系统内存使用情况 共享内存:是通过tmpfs实现的,所以它的大小也就是tmpfs使用的大小了tmpfs其实也是一种特殊的缓存 可用内存:是新进程可以使用的最大内存它包括剩余内存和可回收缓存。 缓存包括两部分: 1、一部分是磁盘读取文件的页缓存,用来缓存从磁盘读取的数据,可以加快
阅读全文
摘要:问题1:性能工具版本太低,导致指标不全 解决方案1: 这是使用 CentOS 的同学普遍碰到的问题。在文章中,我的pidstat 输出里有一个 %wait 指标,代表进程等待 CPU 的时间百分比, 这是 systat 11.5.5 版本才引入的新指标,旧版本没有这一项。而 CentOS 软件库里的
阅读全文
摘要:问题 1: 使用 perf 工具时,看到的是 16 进制地址而不是函数名 1、分析过程 在 CentOS 系统中,使用 perf 工具看不到函数名,只能看到一些 16 进制格式的函数地址。 其实,只要你观察一下 perf 界面最下面的那一行,就会发现一个警告信息Failed to open /opt
阅读全文
摘要:一、free数据的来源 1、碰到看不明白的指标时该怎么办吗? 不懂就去查手册。用 man 命令查询 free 的文档、就可以找到对应指标的详细说明。比如,我们执行 man fre... 2、free数据的来源 Buffers 是内核缓冲区用到的内存,对应的是/proc/meminfo 中的 Buff
阅读全文
摘要:一、内存映射 内存管理也是操作系统最核心的功能之一,内存主要用来存储系统和应用程序的指令、数据、缓存等 1、我们通说的内存指的是物理内存还是虚拟内存? 我们通常说的内存容量,其实这指的是物理内存,物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM)。只有内核才可以直接访问物理内存
阅读全文
摘要:一、性能优化方法论 不可中断进程案例 二、怎么评估性能优化的效果? 1、评估思路 2、几个为什么 1、为什么要选择不同维度的指标? 应用程序和系统资源是相辅相成的关系 2、性能优化的最终目的和结果? 好的应用程序 3、为什么必须要使用应用程序的指标,来评估性能优化的整体效果? 系统优化总是为应用程序
阅读全文
摘要:一、环境准备 1、在第6节的基础上安装dstat 2、故障现象 ①iowait太高,导致平均负载升高,并且达到了系统CPU的个数②僵尸进程不断增多 二、iowait升高的原因分析 1、用dstat 命令同时查看cpu和i/o对比情况 (如 dstat 1 10 间隔1秒输出10组数据),通过结果可以
阅读全文
摘要:一、中断的魅力 1、中断在生活的魅力 比如你订了一份外卖,但是不确定外卖什么时候送到,也没有别的方法了解外卖的进度,但是,配送员送外卖是不等人的,到了你这儿没人取的话,就直接走人了。所以你指能苦苦等着,时不时去门口看看外卖送到没,而不能干其他事情。 不过呢,如果你在订外卖的时候,你就跟配送员约定好,
阅读全文
摘要:一、坏境准备 1、拓扑图 2、安装包 在第9节的基础上 在VM2上安装hping3依奈包 在VM2上安装hping3的安装 3、实验环境准备 1、运行案例终端一 2、确认nginx正常启动(终端二) 3、运行 hping3 命令,来模拟 Nginx 的客户端请求(终端二) 二、分析过程 1、查看系统
阅读全文
摘要:一、进程的状态 1、命令查看 2、进程状态图解 向一个进程发送SIGSTOP 信号,它就会因响应这个信号变成暂停状态(Stopped);再向它发送 SIGCONT 信号,进程又会恢复运行(如果进程是终端里直接起动的, 则需要你用fg命令,回复到前台运行) 而当你的用的调试器调试一个进程是,在使用断点
阅读全文
摘要:一、环境准备 1、安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker、sysstat、perf等工具 终端2 机器配置:1 CPU,2GB 内存 预先安装ab 等工具 2、实战拓谱图 二、操作和分析 1、发现问题 首先在第一个终端执行的命令来运行Nnginx和PHP应用
阅读全文
摘要:一、环境准备 1、安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker、sysstat、perf等工具 终端2 机器配置:1 CPU,2GB 内存 预先安装ab 等工具 2、实战拓谱图 3、环境模拟 终端一 终端二 测试nginx是否启动 性能测试 继续压力测试 二、定位问
阅读全文
摘要:一、什么是CPU的使用率 1、你最常用什么指标来描述系统的CPU性能? 我想你的答案,可能不是平均负载,也不是CPU上下文切换,而是另一个更直观的指标CPU使用率 CPU使用率到底是怎么算出来的吗? 1、如何设置节拍率 2、内核提供的用户节拍率是多少? 为了方便用户控件程序,内核还提供了一个用户控件
阅读全文
摘要:一、性能指标 1、性能指标思维导图 2、CPU使用率 3、CPU平均负载 4、CPU缓存的命中率 CPU 在访问内存的时候,免不了要等待内存的响应。为了协调这两者巨大的性能差距,CPU 缓存(通常是多级缓存)就出现了 二、性能工具 掌握了 CPU 的性能指标,我们还需要知道,怎样去获取这些指标,也就
阅读全文
摘要:一、关于上下文切换的几个为什么 1、 上下文切换是什么? 上下文切换是对任务当前运行状态的暂存和恢复 2、 CPU为什么要进行上下文切换? 当多个进程竞争CPU的时候,CPU为了保证每个进程能公平被调度运行,采取了处理任务时间分片的机制,轮流处理多个进程,由于CPU处理速度非常快,在人类的感官上认为
阅读全文
摘要:一、功耗:CPU的“人体极限” 程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time CPI和指令数都不太容易,越是研发CPU的硬件工程师们就从COU主频下手 1、为什么奔腾 4 的主频没能超过 3.8GHz 的障碍呢? 是因为功耗,我们的CPU,一般都被叫做超大规模集成电
阅读全文
摘要:一、性能到底指的是什么? 买新电脑的时候,我们会说:"原来的电脑性能跟不上了" 写程序的时候,我们会说:"这个程序西能需要优化一下" 1、"性能"到底指的是什么? 在计算机组成原理乃至体系结构中"性能"都是最重要的一个主题。我在前面说过学习和研究计算机组成原理,就是在理解计算机是怎么运作的, 以及为
阅读全文
摘要:一、为什么需要复杂度分析? 1、测试结果非常依赖测试环境 Core i9 Core i3 在机器A上:a 代码执行的速度比 b 代码要快 在机器B上:b 代码执行的速度比 a 代码要快 2、测试结果受数据规模的影响很大 测试数据有序度不一样 测试数据规模太小不一样所以、我们需要一个不用具体的测试数据
阅读全文
摘要:一、时间和空间复杂度基本概念 1、影响系统性能的因素有哪些? 影响系统性能的因素有很多,把这些因素分为三大类 1、算法理论上的计算复杂度 2、开发实现的方案和硬件设备的规格 3、算法理论上的计算复杂度、开发实现的方案和硬件设备的规格 2、复杂度是什么? 算法复杂度是一个比较抽象的概念,通常只是一个估
阅读全文

浙公网安备 33010602011771号