linux进阶-性能分析
把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来
Lyon0x
这个作者很懒,什么都没留下…
展开
-
17.网络性能-linux网络性能评估
网络基准测试熟悉了网络的性能指标后,接下来,我们再来看看,如何通过性能测试来确定这些指标的基准值。你可以先思考一个问题。我们已经知道,Linux 网络基于 TCP/IP 协议栈,而不同协议层的行为显然不同。那么,测试之前,你应该弄清楚,你要评估的网络性能,究竟属于协议栈的哪一层?换句话说,你的应用程序基于协议栈的哪一层呢?根据前面学过的 TCP/IP 协议栈的原理,这个问题应该不难回答。比如:...原创 2020-04-09 23:22:28 · 204 阅读 · 0 评论 -
16.网络性能-linux网络指标
性能指标实际上,我们通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。带宽,表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)。吞吐量,表示单位时间内成功传输的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽限制,而吞吐量 / 带宽,也就是该网络的使用率。延时,表示从网络请求发出后,一直到收到远端响应,所需...原创 2020-04-09 23:13:24 · 715 阅读 · 0 评论 -
15.网络性能-linux网络基础
为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流程,OSI 模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能。其中,应用层,负责为应用程序提供统一的接口。表示层,负责把数据转换成兼容接收系统的格式。会话层,负责维护计算机之间的通信连接。传输层,负责为数据加上传输表头,形成数据包。网络层,负责数据的路由和转发。数据链路层...原创 2020-04-09 23:07:10 · 171 阅读 · 0 评论 -
14.IO性能测试优化
I/O 基准测试I/O 性能优化的目标是什么?换句话说,我们观察的这些 I/O 性能指标(比如 IOPS、吞吐量、延迟等),要达到多少才合适呢?事实上,I/O 性能指标的具体标准,每个人估计会有不同的答案,因为我们每个人的应用场景、使用的文件系统和物理磁盘等,都有可能不一样。为了更客观合理地评估优化效果,我们首先应该对磁盘和文件系统进行基准测试,得到文件系统或者磁盘 I/O 的极限性能。...原创 2020-04-08 23:06:38 · 434 阅读 · 0 评论 -
13.IO性能分析套路
0.性能指标描述 I/O 的性能指标有哪些?文件系统 I/O 性能指标首先,最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。不过要注意,这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。而且,如果你配置了 RAID,从文件系统看到的使...原创 2020-04-08 22:59:58 · 178 阅读 · 0 评论 -
12.IO性能-磁盘IO原理
0.磁盘磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘。无论机械磁盘,还是固态磁盘,相同磁盘的随机 I/O 都要比连续 I/O 慢很多,原因也很明显。对机械磁盘来说,我们刚刚提到过的,由于随机 I/O 需要更多的磁头寻道和盘片旋转,它的性能自然要比连续 I/O 慢。而对固态磁盘来说,虽然它的随机性能比机械硬盘好很多,但同样存在“先擦除再写入”的限制...原创 2020-04-07 22:47:59 · 306 阅读 · 0 评论 -
11.IO性能-linux文件系统原理
1文件系统磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。为了方便管理,Linux 文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(directory entry)。它们主要用来记录文件的元信息和目录结构。索引节点,简称为 inode,用来记录文件的元数据,比如 inode 编号、文件大小、访问权限、修改日期、...原创 2020-04-07 22:38:20 · 288 阅读 · 1 评论 -
10.内存性能-分析套路
内存性能指标首先,你最容易想到的是系统内存使用情况,比如已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等。已用内存和剩余内存很容易理解,就是已经使用和还未使用的内存。共享内存是通过 tmpfs 实现的,所以它的大小也就是 tmpfs 使用的内存大小。tmpfs 其实也是一种特殊的缓存。可用内存是新进程可以使用的最大内存,它包括剩余内存和可回收缓存。缓存包括两部分,一...原创 2020-04-06 23:12:51 · 210 阅读 · 0 评论 -
9.内存性能-swap详解
内存回收,也就是系统释放掉可以回收的内存,比如我前面讲过的缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File-backed Page)。大部分文件页,都可以直接回收,以后有需要时,再从磁盘重新读取就可以了。而那些被应用程序修改过,并且暂时还没写入磁盘的数据(也就是脏页),就得先写入磁盘,然后才能进行内存释放。这些脏页,一般可以通过两种方式写入磁盘。可以在应用程序...原创 2020-04-06 23:04:21 · 497 阅读 · 0 评论 -
8.内存性能-cache和buffer
内存性能中 Buffer 和 Cache 的详细含义。Buffer 既可以用作“将要写入磁盘数据的缓存”,也可以用作“从磁盘读取数据的缓存”。Cache 既可以用作“从文件读取数据的页缓存”,也可以用作“写文件的页缓存”Buffer 和 Cache 分别缓存磁盘和文件系统的读写数据。从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返...原创 2020-04-06 22:50:49 · 179 阅读 · 0 评论 -
7.内存性能问题-linux内存原理
linux内存工作原理物理内存-虚拟内存-MMU之间的关系 进程内存用户空间-内核空间 内存分配与回收机制 内存查看相关指标虚拟内存空间分布首先,我们需要进一步了解虚拟内存空间的分布情况。最上方的内核空间不用多讲,下方的用户空间内存,其实又被分成了多个不同的段。以 32 位系统为例,我画了一张图来表示它们的关系。通过这张图你可以看到,用户空间内存,从低到高分别是五种不同的...原创 2020-04-06 22:45:12 · 148 阅读 · 0 评论 -
6-CPU性能问题-分析套路
0x00 性能指标0x01 性能工具0x03分析套路原创 2020-04-06 17:18:11 · 230 阅读 · 0 评论 -
5-CPU性能-软中断问题分析
Linux 中的中断处理程序分为上半部和下半部:上半部对应硬件中断,用来快速处理中断。下半部对应软中断,用来异步处理上半部未完成的工作。Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,可以通过查看 /proc/softirqs 来观察软中断的运行情况。网卡接收数据包的例子,让你更好地理解。网卡接收到数据包后,会通过硬件中断的方式,通知内核有新的数据到了。这时,内核就...原创 2020-04-06 17:03:33 · 614 阅读 · 0 评论 -
4-CPU性能-CPU利用率问题分析
CPU 使用率,就是除了空闲时间外的其他时间占总 CPU 时间的百分比 CPU 使用率是最直观和最常用的系统性能指标,更是我们在排查性能问题时,通常会关注的第一个指标。所以我们更要熟悉它的含义,尤其要弄清楚用户(%user)、Nice(%nice)、系统(%system) 、等待 I/O(%iowait) 、中断(%irq)以及软中断(%softirq)这几种不同 CPU 的使用率。 user...原创 2020-03-25 16:50:35 · 521 阅读 · 0 评论 -
3-CPU性能-上下文切换问题分析
通过htop查看cpu使用率,看到哪个进程占用的cpu比较多,然后在看vmstat.看到上下午切换cs的次数很高,在通过pidstat查看是不是sys bench引起的,最后在看看/proc/interrupts 看看是什么中断引起的,最后确认是上下文切换过多引起的性能问题 过多上下文切换会缩短进程运行时间 vmstat 1 1:分析内存使用情况、cpu上下文切换和中断的次数。cs每秒上...原创 2020-03-25 16:45:19 · 512 阅读 · 0 评论 -
2.CPU性能-CPU上下文切换
0why平均负载升高,多个进程竞争 CPU 就是一个经常被我们忽视的问题。进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?CPU 上下文切换就是罪魁祸首。1what-CPU上下文在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器(Program Counter,PC)。CPU 寄存...原创 2020-03-25 16:41:02 · 138 阅读 · 0 评论 -
1.CPU性能-平均负载load
平均负载定义$ uptime02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88load,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率...原创 2020-03-25 16:24:08 · 333 阅读 · 0 评论 -
0-linux性能概括
性能,我相信“高并发”和“响应快”一定是最先出现在你脑海里的两个词,而它们也正对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是从应用负载的视角来考察性能,直接影响了产品终端的用户体验。跟它们对应的,是从系统资源的视角出发的指标,比如资源使用率、饱和度等。这个图是 Linux 性能分析最重要的参考资料之一,它告诉你,在 Linux 不同子系统出现性能问题后,应该用什么样的工具...原创 2020-03-25 16:10:28 · 121 阅读 · 0 评论