Linux cpu 性能分析整理

cpu 性能指标

cpu使用率

  • 用户 cpu
  • 系统 cpu
  • iowait
  • 软中断
  • 硬中断
  • steal cpu 使用率
  • guest cpu 使用率

平均负载

进程上下文切换

  • 自愿上下文切换
  • 非自愿上下文切换

cpu缓存命中率

常用分析路径

根据指标查工具

image.png

根据工具查指标

image.png

快速缩小排查范围

image.png

通过这张图可以发现, top、vmstat 和 pidstat 这三个命令几乎包含了所有重要的 cpu性能指标:

  • 从 top 的输出可以获取到各种 cpu 使用率以及僵尸进程和平均负载等信息。
  • 从 vmstat 可以获取上下文切换次数,中断次数,运行状态和不可中断的状态的进程数。
  • 从 pidstat的输出可以得到进程的用户 cpu 使用率,系统 cpu 使用率,以及自愿上下文切换和非自愿上下文切换的信息。

cpu性能优化思路

应用程序优化

  • 编译器优化:很多编译器都会提供优化选项,适当开启它们,在编译阶段你就可以获得编译器的帮助,来提升性能。比如, gcc 就提供了优化选项 -O2,开启后会自动对应用程序的代码进行优化。
  • 算法优化:使用复杂度更低的算法,可以显著加快处理速度。比如,在数据比较大的情况下,可以用 O(nlogn) 的排序算法(如快排、归并排序等),代替 O(n^2) 的排序算法(如冒泡、插入排序等)。
  • 异步处理:使用异步处理,可以避免程序因为等待某个资源而一直阻塞,从而提升程序的并发处理能力。比如,把轮询替换为事件通知,就可以避免轮询耗费 CPU 的问题。
  • 多线程代替多进程:前面讲过,相对于进程的上下文切换,线程的上下文切换并不切换进程地址空间,因此可以降低上下文切换的成本。
  • 善用缓存:经常访问的数据或者计算过程中的步骤,可以放到内存中缓存起来,这样在下次用时就能直接从内存中获取,加快程序的处理速度。

系统优化

  • CPU 绑定:把进程绑定到一个或者多个 CPU 上,可以提高 CPU 缓存的命中率,减少跨 CPU 调度带来的上下文切换问题。
  • CPU 独占:跟 CPU 绑定类似,进一步将 CPU 分组,并通过 CPU 亲和性机制为其分配进程。这样,这些 CPU 就由指定的进程独占,换句话说,不允许其他进程再来使用这些 CPU。
  • 优先级调整:使用 nice 调整进程的优先级,正值调低优先级,负值调高优先级。优先级的数值含义前面我们提到过,忘了的话及时复习一下。在这里,适当降低非核心应用的优先级,增高核心应用的优先级,可以确保核心应用得到优先处理。
  • 为进程设置资源限制:使用 Linux cgroups 来设置进程的 CPU 使用上限,可以防止由于某个应用自身的问题,而耗尽系统资源。
  • NUMA(Non-Uniform Memory Access)优化:支持 NUMA 的处理器会被划分为多个 node,每个 node 都有自己的本地内存空间。NUMA 优化,其实就是让 CPU 尽可能只访问本地内存。
  • 中断负载均衡:无论是软中断还是硬中断,它们的中断处理程序都可能会耗费大量的 CPU。开启 irqbalance 服务或者配置 smp_affinity,就可以把中断处理过程自动负载均衡到多个 CPU 上。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 在Linux性能分析-平均负载中,提到过一种导致平均负载升高的情况,就是有大量进程或线程等待cpu调度。 为...
    ging_efcf阅读 2,361评论 0 0
  • 摘要 本文先介绍了cpu上下文切换的基础知识,以及上下文切换的类型(进程,线程等切换)。然后介绍了如何查看cpu切...
    Vackine阅读 9,874评论 1 10
  • 系统平均负载 系统平均负载:是处于可运行或不可中断状态的平均进程数。 可运行进程:使用 CPU 或等待使用 CPU...
    safecdn阅读 3,923评论 0 1
  • Linux性能分析概要 1. 性能指标 选择指标评估应用程序和系统的性能 为应用程序和系统设置性能目标 进行性能基...
    Blue_Eye阅读 12,552评论 0 11
  • 平均负载 1. 理解平均负载   平均负载对很多人来说既熟悉又陌生,那我们如何理解和观测这个最常见、也是最重要的系...
    布鲁斯理阅读 1,576评论 0 0

友情链接更多精彩内容