当前位置: 首页 > news >正文

(五)Linux性能优化-CPU-性能优化

性能优化文章参考倪朋飞老师的Linux性能优化实战课程

性能优化方法论

Q:怎么评估性能优化的效果?
A:对系统的性能指标进行量化,并且要分别测试出优化前、后的性能指标,用前后指标的变化来对比呈现效果。确定性能的量化指标;测试优化前的性能指标;测试优化后的性能指标
Q:多个性能问题同时存在,要怎么选择?
A:不是所有的性能问题都值得优化,找出最重要的、可以最大程度提升性能的问题
Q:有多种优化方法时,要如何选择?
A:性能优化通常会带来复杂度的提升,降低程序的可维护性,还可能在优化一个指标时,引发其他指标的异常;切记,不要想着“一步登天”,试图一次性解决所有问题;也不要只会“拿来主义”,把其他应用的优化方法原封不动拿来用,却不经过任何思考和分析

CPU优化

  1. 应用程序优化
    • 编译器优化
    • 算法优化
    • 异步处理
    • 多线程
    • 缓存
  2. 系统优化
    • 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 上。
# 查看系统平均负载
watch -d uptime
# 查看系统CPU情况
mpstat -P ALL 1
# 查看进程CPU使用情况
pidstat -u 1
# 查看上下文切换
vmstat 1 10

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
  • Webworker详解应用场景大片文件Hash计算
  • Web3 借贷与清算机制全解析:链上金融的运行逻辑
  • 用 Melos 解决 Flutter Monorepo 的依赖冲突:一个真实案例
  • 使用 Melos 高效管理 Flutter/Dart Monorepo 项目
  • 【基于阿里云搭建数据仓库(离线)】使用UDTF时出现报错“FlatEventUDTF cannot be resolved”
  • Electron通信流程
  • 如何优化React Native应用以适配HarmonyOS5?
  • CppCon 2015 学习:Memory and C++ debugging at Electronic Arts
  • 例说局部性原理给程序带来的提升
  • 【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
  • 【每日一题 | 2025年6.2 ~ 6.8】第16届蓝桥杯部分偏简单题
  • 3.机器学习-分类模型-线性模型
  • Go语言多线程问题
  • 数据库学习(三)——MySQL锁
  • Ubuntu20.04中MySQL的安装和配置
  • 基于React 的 AntD 库进行前端开发过程中的问题汇总
  • 使用 C/C++的OpenCV 实时播放火柴人爱心舞蹈动画
  • 机器人/智能车纯视觉巡线经典策略—滑动窗口+直方图法
  • 神经网络-Day48
  • 东莞电子网站建设/计算机培训机构哪个最好
  • 懂做网站怎么赚钱/关键词有哪些?
  • 建筑网站登陆页面/b站网站推广
  • 做最漂亮的网站/网上在哪里打广告最有效
  • 合肥网站制作公司电话/网络推广和seo
  • 网站风格定位有哪些/seo流量的提升的软件