摘要: CPU 的性能指标那么多,CPU 性能分析工具也是一抓一大把,如果离开专栏,换成实际的工作场景,我又该观察什么指标、选择哪个性能工具呢? 不要担心,今天我就以多年的性能优化经验,给你总结出一个“又快又准”的瓶颈定位套路,告诉你在不同场景下,指标工具怎么选,性能瓶颈怎么找。 CPU 性能指标 我们先来 阅读全文
posted @ 2020-11-27 16:57 元贞 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 上一期我给你讲了软中断的基本原理,我们先来简单复习下。 中断是一种异步的事件处理机制,用来提高系统的并发处理能力。中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分。 上半部对应硬中断,用来快速处理中断; 下半部对应软中断,用来异步处理上半部未完成的工作。 Linux 阅读全文
posted @ 2020-11-27 16:54 元贞 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 上一期,我用一个不可中断进程的案例,带你学习了 iowait(也就是等待 I/O 的 CPU 使用率)升高时的分析方法。这里你要记住,进程的不可中断状态是系统的一种保护机制,可以保证硬件的交互过程不被意外打断。所以,短时间的不可中断状态是很正常的。 但是,当进程长时间都处于不可中断状态时,你就得当心 阅读全文
posted @ 2020-11-27 16:22 元贞 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 上一节,我给你讲了 Linux 进程状态的含义,以及不可中断进程和僵尸进程产生的原因,我们先来简单复习下。 使用 ps 或者 top 可以查看进程的状态,这些状态包括运行、空闲、不可中断睡眠、可中断睡眠、僵尸以及暂停等。其中,我们重点学习了不可中断状态和僵尸进程: 不可中断状态,一般表示进程正在跟硬 阅读全文
posted @ 2020-11-27 16:06 元贞 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 上一节,我用一个 Nginx+PHP 的案例,给你讲了服务器 CPU 使用率高的分析和应对方法。这里你一定要记得,当碰到无法解释的 CPU 使用率问题时,先要检查一下是不是短时应用在捣鬼。 短时应用的运行时间比较短,很难在 top 或者 ps 这类展示系统概要和进程快照的工具中发现,你需要使用记录事 阅读全文
posted @ 2020-11-27 15:47 元贞 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top、vmstat、pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题。不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的。 那是不是所有 CPU 使用率高 阅读全文
posted @ 2020-11-27 15:42 元贞 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能已经有了初步了解。不过我还是想问一下,在学这个专栏前,你最常用什么指标来描述系统的 CPU 性能呢?我想你的答案,可能不是平均负载,也不是 CPU 上下文切换,而是另一个更直观的指标—— CPU 使用率。 我们前面说过,CP 阅读全文
posted @ 2020-11-27 15:34 元贞 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 上一节,我给你讲了 CPU 上下文切换的工作原理。简单回顾一下,CPU 上下文切换是保证 Linux 系统正常工作的一个核心功能,按照不同场景,可以分为进程上下文切换、线程上下文切换和中断上下文切换。具体的概念和区别,你也要在脑海中过一遍,忘了的话及时查看上一篇。 今天我们就接着来看,究竟怎么分析 阅读全文
posted @ 2020-11-27 15:29 元贞 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 上一节,我给你讲了要怎么理解平均负载( Load Average),并用三个案例展示了不同场景下平均负载升高的分析方法。这其中,多个进程竞争 CPU 就是一个经常被我们忽视的问题。我想你一定很好奇,进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?看到今天的主题,你应该已经猜 阅读全文
posted @ 2020-11-27 15:24 元贞 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果。 $ uptime 02:34:03 up 2 days, 20:14, 1 user, load average 阅读全文
posted @ 2020-11-27 14:26 元贞 阅读(249) 评论(0) 推荐(0) 编辑