(五)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

在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThreadLocal原理及内存泄漏分析

介绍 每个线程内部都有一个私有的 ThreadLocalMap 实例&#xff0c;用于存储该线程关联的所有 ThreadLocal 变量。 ThreadLocalMap 内部的 Entry 继承自 WeakReference<ThreadLocal<?>>。所以**Entry 的 key&#xff08;即 ThreadLocal 对象本身&#xff09;是通…

Oracle OCP认证考试考点详解083系列18

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 86. 第86题&#xff1a; 题目 解析及答案&#xff1a; 86、使用FLASHBACK TABLE的两个先决条件是什么&#xff1f; A&#xff09;必须对…

git merge合并分支push报错:Your branch is ahead of ‘xxx‘ by xx commits.

git merge合并分支push报错&#xff1a;Your branch is ahead of xxx by xx commits. Your branch is ahead of xxx by xx commits.(use "git push" to publish your local commits)解决方案&#xff1a; git checkout 到要合入的分支&#xff0c;然后&#xff1a; …

英语作文模板

核心原则&#xff1a;三段式结构 ​英文: The core principle is a three-paragraph structure (Introductory paragraph Main body paragraph Concluding paragraph).​中文: 核心原则是采用三段式结构&#xff08;开头引论段 中间主体段 结尾总结段&#xff09;。 模板 …

[安卓按键精灵辅助工具]一些安卓端可以用的雷电模拟器adb命令

在雷电论坛上看到很多adb命令&#xff0c;不过并没有针对安卓按键进行处理&#xff0c;这里做了一下测试&#xff0c;把能用在安卓按键上的adb命令整理出来。 调用adb命令使用的山海插件中的Execute 执行shell命令 adb命令源码如下&#xff1a; Import "shanhai.lua&quo…

uni-app项目怎么实现多服务环境切换

前情 uni-app是我比较喜欢的跨平台框架&#xff0c;它能开发小程序/H5/APP(安卓/iOS)&#xff0c;重要的是对前端开发友好&#xff0c;自带的IDE可视化的运行和打包也让开发体验也非常棒&#xff0c;公司项目就是主推uni-app&#xff0c;现在我的开发模式是用HBuilder X跑项目…

论文阅读:强化预训练

大型语言模型 (LLMs) 的惊人能力很大程度上归功于在海量文本语料库上进行下一词元预测 (Next-Token Prediction, NTP) 的规模化训练。与此同时&#xff0c;强化学习 (Reinforcement Learning, RL) 已成为微调 LLMs、使其与人类偏好对齐或增强特定技能&#xff08;如复杂推理&am…

Java 大视界——Java大数据在智能安防视频监控中的异常事件快速响应与处理机制

​​摘要&#xff1a;​​ 在智慧城市和工业4.0浪潮下&#xff0c;智能安防系统日均产生PB级视频流数据。如何在实时性、准确性、成本三者间取得平衡&#xff0c;成为行业核心挑战。本文将深入探讨​​Java技术栈在大规模视频分析系统中的核心作用​​&#xff1a;基于FlinkJav…

华为云Flexus+DeepSeek征文| 基于Dify-LLM平台应用实践:创建智能知识库问答助手

华为云FlexusDeepSeek征文&#xff5c; 基于Dify-LLM平台应用实践&#xff1a;创建智能知识库问答助手 前言一、相关名词介绍1.1 华为云Flexus X实例介绍1.2 华为云ModelArts Studio介绍 二、本次实践介绍2.1 本次实践环境介绍2.2 Dify平台介绍 三、搭建Dify-LLM开发平台3.1 进…

Spark on yarn的作业提交流程

一、YarnClient 二、YarnCluster 三、详细描述 客户端&#xff08;Client&#xff09;通过YARN的ResourceManager提交应用程序。在此过程中&#xff0c;客户端进行权限验证&#xff0c;生成Job ID和资源上传路径&#xff0c;并将这些信息返回给客户端。客户端将jar包、配置…

MySQL 主从复制与一主多从架构实战详解

文章目录 一、MySQL 主从复制的本质原理 数据同步流程&#xff1a; 主从复制三大线程&#xff1a; 二、主从复制的三种模式 三、一主多从架构设计与应用 应用场景&#xff1a; 优势&#xff1a; 四、单机模拟主从复制&#xff08;实战配置&#xff09; 环境准备&#xff1a…

分布式光纤测温及红外测温系统的区别?

在现代工业监控系统中&#xff0c;温度监测是保障设备安全运行的关键环节。分布式光纤测温&#xff08;DTS&#xff09;和红外测温&#xff08;IR&#xff09;是两种常见的温度监测技术。 本文将介绍这两种技术的原理、优势以及应用场景的区别。 光纤测温技术的原理是利用光纤…

sql优化:使用 exists 优化 in () 或 = ()

1、使用 exists 优化 in () 优化前&#xff1a; select id, order_no, apply_time, apply_dept, apply_operator, purpose, stage, remark from BranchWarehouseApplyMaster where stage 0 and warehouse_id 1 and apply_dept in ( select emp_DeptID from Employee where …

HTTP 响应状态码

HTTP 响应状态码&#xff08;Response Status Codes&#xff09; HTTP 响应状态码用于表示服务器对客户端请求的处理结果&#xff0c;由3位数字 组成&#xff0c;分为5类&#xff1a; 状态码 类别 常见状态码 说明 1xx 信息响应 100&#xff08;Continue&#xff09; …

如何通过插件系统打造个性化效率工作流

在现代工作流中&#xff0c;快速调用工具与自动化操作已成为提升生产力的核心环节。一款真正出色的效率工具&#xff0c;不仅要在响应速度和跨平台兼容性上表现出色&#xff0c;更需要具备高度的可扩展性&#xff0c;以满足多样化的使用场景。 它不仅轻量高效&#xff0c;还支…

Spring上下文模块设计

经过此前我们设计的如&#xff1a;IoC、Web、数据访问、AOP等模块的设计&#xff0c;我们从设计上已经搭建好了Spring的基础骨架了&#xff0c;但聪明的码友会思考想到&#xff1a;作为一个基础框架而言&#xff0c;目前应该是已经够用了的&#xff0c;但是上进的码友怎么会就此…

keil5怎么关闭工程

在project里面有一个close project&#xff0c;点击后就关掉了&#xff0c;之前还按照其他软件的操作习惯&#xff0c;右键工程选项&#xff0c;但是始终没有发现关闭选项。

腾讯云:6月30日起,自动禁用,及时排查

大家好&#xff0c;我是小悟。 腾讯云发布公告&#xff0c;宣布从2025年6月30日开始&#xff0c;对长期未使用的AccessKey&#xff08;API访问密钥&#xff09;进行自动禁用。 简单来说&#xff0c;如果你的密钥在90天内没动静&#xff0c;系统就会把它关掉&#xff0c;不管是…

【C++】多重继承与虚继承

多重继承与虚继承 1.单继承和多重继承的区别2.语法规则示例代码&#xff1a;多重继承子类指定父类的构造示例代码&#xff1a;多重继承子类隐藏父类的同名方法 3.虚继承解决多重继承遇到的bug示例代码&#xff1a;环状继承引发的问题 3.1 虚基类&#xff1a;3.2 语法规则&#…

GCC编译/连接/优化等选项

1. GCC编译/连接/优化等选项 1. GCC编译/连接/优化等选项 1.1. 简介1.2. 常用选项 1.2.1. -c -E -S -o1.2.2. -L<path> -l<library>1.2.3. -D<macro>1.2.4. -I<path> 1.3. 代码生成和优化 1.3.1. -std<standard>1.3.2. -shared1.3.3. -fPIC1.3.…