展开菜单

某个应用的CPU使用率居然达到100%,我该怎么办?

通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能已经有了初步了解。不过我还是想问一下,在学这个专栏前,你最常用什么指标来描述系统的 CPU 性能呢?我想你的答案,可能不是平均负载,也不是 CPU 上下文切换,而是另一个更直观的指标—— CPU 使用率。 我们前面说过,CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。那么,作为最常用也是最熟悉的 CPU 指标,你能说出 CPU 使用率到底是怎么算出来的吗?再有,诸如 top、ps 之类的性能工具展示的 %user、%nice、 %system、%iowait 、%steal 等等,你又能弄...

由简入繁,从解答到解决

提问 5 要素 作为当今顶流大语言模型之一,ChatGPT 支持任何自然语言,请放心用中文开始。如果你也关注 ChatGPT 的核心竞争对手们,Calude 支持,谷歌 Bard 也即将支持。对于比普通话更困难的闽南语,手机端ChatGPT也能通过内置的Whisper听懂。 既然 AI 自动解决了语言障碍,那我们就能聚焦真正重要的问题了。首先来看搜索时代可以延续的做法,当你搜索解惑的时候,通常是这个浓缩的公式: 关键词/一句话 举两个例子。 关键词,“夜曲一响”。想要了解周杰伦《夜曲》封神那一晚的故事,浏览器会自动给你补全“,上台领奖”,或者其他关联的结果,但也仅限于知识...

经常说的 CPU 上下文切换是什么意思?(下)

怎么查看系统的上下文切换情况 通过前面学习我们知道,过多的上下文切换,会把CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶。 既然上下文切换对系统性能影响那么大,你肯定迫不及待想知道,到底要怎么查看上下文切换呢?在这里,我们可以使用 vmstat 这个工具,来查询系统的上下文切换情况。 vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。 比如,下面就是一个 vmstat 的使用示例: # 每隔5秒输出1组数据 $ vmsta...

经常说的 CPU 上下文切换是什么意思?(上)

我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。 而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器(Program Counter,PC)。 CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。而程序计数器,则是用来存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是 CPU 在运行任何任务前,必须的依赖环境,...