Linxu性能优化学习笔记——CPU篇
文章平均质量分 86
qq_29864971
这个作者很懒,什么都没留下…
展开
-
08—怎么理解linux软中断
怎么理解linux中断 其实除了 iowait,软中断(softirq)CPU 使用率升高也是最常见的一种性能问题。1. 从“外卖”看中断 说到中断,我在前面关于“上下文切换”的文章,简单说过中断的含义,先来回顾一下。中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。 你可能要问了,为什么要有中断呢?我可以举个生活中的例子,让你感受一下中断的魅力。 比如说你订了一份外卖,但是不确定外卖什么时候送到...原创 2021-03-15 10:19:34 · 285 阅读 · 1 评论 -
07—不可中断进程和僵尸进程怎么办(下)
系统出现大量不可中断进程和僵尸进程怎么办(下) 上一节,我给你讲了 Linux 进程状态的含义,以及不可中断进程和僵尸进程产生的原因,我们先来简单复习下。使用 ps 或者 top 可以查看进程的状态,这些状态包括运行、空闲、不可中断睡眠、可中断睡眠、僵尸以及暂停等。其中,我们重点学习了不可中断状态和僵尸进程:不可中断状态,一般表示进程正在跟硬件交互,为了保护进程数据与硬件一致,系统不允许其他进程或中断打断该进程。 僵尸进程表示进程已经退出,但它的父进程没有回收该进程所占用的资源。两个问题:..原创 2021-03-15 10:14:46 · 180 阅读 · 0 评论 -
06—不可中断进程和僵尸进程怎么办?(上)
系统中出现大量不可中断进程和僵尸进程怎么办?(上)1. 进程状态 top 和 ps 是最常用的查看进程状态的工具,我们就从 top 的输出开始。下面是一个 top 命令输出的示例,S 列(也就是 Status 列)表示进程的状态。从这个示例里,你可以看到 R、D、Z、S、I 等几个状态,它们分别是什么意思呢? 我们挨个来看一下:R 是 Running 或 Runnable 的缩写,表示进程在 CPU 的就绪队列中,正在运行或者正在等待运行。 D 是 Disk Sleep 的...原创 2021-03-15 10:00:25 · 148 阅读 · 0 评论 -
05—如何找到CPU利用率高的应用?
如何找到CPU利用率高的应用?1. 上节回顾 上一节介绍了CPU 使用率是什么,并通过一个案例教你使用 top、vmstat、pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题。不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的。 那是不是所有 CPU 使用率高的问题,都可以这么分析呢? 你的答案应该是否定的。回顾前面的内容,我们知道,系统的 CPU 使用率,不仅包括进程用户态和内核态的运行,还...原创 2021-03-15 09:54:57 · 191 阅读 · 0 评论 -
04—CPU利用率过高怎么办?
某个应用的CPU利用率达到100%,我该怎么办?1. CPU使用率 Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。 为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。 节拍率 HZ 是内核的可配选项,可以设置为 100、250、1...原创 2021-03-15 09:43:46 · 527 阅读 · 0 评论 -
03—CPU上下文切换(下)
CPU上下文切换是什么意思(下)1. 怎么查看上下文切换情况? 通过前面学习我们知道,过多的上下文切换,会把 CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶。在这里,我们可以使用 vmstat 这个工具,来查询系统的上下文切换情况。 vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。 下面是一个vmstat示例: 图...原创 2021-03-15 09:38:56 · 108 阅读 · 0 评论 -
02—CPU上下文切换(上)
CPU上下文切换是什么意思(上)1. CPU上下文我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU上下文。CPU上下文包括了寄存器和程序计数器。寄存器:是 CPU 内置的容量小、但速度极快的内存。程序计数器:则是用来原创 2021-03-15 09:33:32 · 193 阅读 · 0 评论 -
01—如何理解CPU的平均负载
到底如何理解“平均负载”1. 平均负载概念平均负载又可以理解成:单位时间的“平均活跃进程数”。这里的活跃进程,主要指可运行状态的进程和不可中断状态的进程。它和CPU使用率没有直接的关系。2. 可运行状态和不可中断状态进程可运行状态进程:可运行状态的进程是指正在使用CPU或者等待CPU的进程,也就是我们通过ps命令能查看到的Running或者Runnable状态的进程。不可中断状态进程:不可中断进程是指正处于内核关键的进程,这些是不能打断的。也就是我们通过ps命令能查看到的D状态的进.原创 2021-03-15 09:28:09 · 533 阅读 · 0 评论