CPU优化建议使用cpupower设置CPU Performance模式

CPU优化建议使用cpupower设置CPU Performance模式,第1张

CPU动态节能技术用于降低服务器功耗,通过选择系统空闲状态不同的电源管理策 略,可以实现不同程度降低服务器功耗,更低的功耗策略意味着CPU唤醒更慢对性能 影响更大。对于对时延和性能要求高的应用,建议关闭CPU的动态调节功能,禁止 CPU休眠,并把CPU频率固定到最高。通常建议在服务器BIOS中修改电源管理为Performance,如果发现CPU模式为conservative或者powersave,可以使用cpupower设置CPU Performance模式,效果也是相当显著的。

2019年01月18日 - 初稿

阅读原文 - >

当我们的程序开得多了,CPU的使用率就会上升,那CPU使用率是如何计算的呢下面就让我给大家说一下CPU使用率是如何计算的。

CPU使用率的算法

方法 1: 使用CPU的处理能力基准计算实时CPU占用率

具体描述:

(1) 在RTOS系统启动前, 使用Tick中断测试CPU的处理能力基准 CPUPerformanceBase;

(2) 在系统进入运行后, 使用空闲任务执行与测试CPU处理能力基准完全相同的算法, 得到RTCPUPerformance

(3) 周期地计算CPU占用率, 并清除RTCPUPerformance的值, 一般每秒钟计算一次:

RealTime CPU Load = 1 - (RTCPUPerformance/CPUPerformanceBase) 100%

优点:

(1) 实现简单

(2) 所得到的CPU占用率非常准确, 误差只取决于CPUPerformanceBase的测试结果和整除时的余数, 通常误差小于

1%

(3) 不占用硬件资源

缺点:

(1) CPU必须一直全速运行, 不能修改CPU主频, 也不能使CPU进入掉电保护模式

(2) 不能得到系统中每个任务对CPU占用率的贡献

(3) 必须有一个空闲任务才能计算

评价:

这个算法只适用于工控, 电信等对不需要使CPU进入掉电保护模式的领域

方法2: 在Tick中断中对RTOS中的任务进行采样

具体描述:

(1) 系统进入运行后, 每次Tick中断发生时, 采样一下当前正在执行的任务, 如果CPU处于HALT态, 累加haltTimes

(2) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除haltTimes:(tickIntFrequance表示Tick中断的发生频率)

RealTime CPU Load = haltTimes / tickIntFrequance

某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance 100%

优点:

(1) 实现简单

(2) 支持CPU掉电模式

(3) 可以大致得到每个任务对CPU占用率的贡献

缺点:

(1) 误差取决于Tick的频率和OS中每个任务的运行时长, 因此误差非常大

评价:

这个算法适用于对CPU占用率精度要求不高的消息电子产品

方法3: 精确计算每个任务对CPU占用率的贡献

具体描述:

(1) 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧), 这个中断只对一个计数器执

行一次累加

(2) 在OS每次执行任务切换时读取该计数器的值(AUXTimer), 并保存到TCB中, 比如, 从任务Task1切换到任务Task2,

算法如下:

Task1, 换出动作:

task1的结束运行时间 = AUXTimer的当前值

task1的总运行时间 = task1的总运行时间 + task1的结束运行时间 - task1的开始运行时间

Task2, 换入动作:

task2的开始运行时间 = AUXTimer的当前值

(以上算法中没有考虑数字回绕, 在工程实现时应当考虑, 发生回绕后任务的结束运行时间小于任务的开始运行时间

(3) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除每个任务的总运行时间, 下面的公式中, 一个周期内的总时

间等于AUXTimer周期除以Tick周期得到的倍数:

某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间

RealTime CPU Load = 所有任务的CPU占用率之和

对这个方法进行简单改进, 就可以实现对CPU占用率进行实时测量, 看官自己动动脑筋吧

优点:

(1) 误差取决于AUXTimer中断的频率, 可以非常精确地得到每个任务对CPU占用率的贡献

缺点:

(1) 复杂, 加大了任务切换时的开销

(2) 和前两种算法相比, 这个算法要多占用一个硬件资源

CPU使用率是如何计算的相关 文章 :

1 cpu使用率如何计算

2 cpu正常使用率多少

3 如何查看cpu使用率

4 服务器cpu使用率多少算正常

5 CPU是如何进行运算的

楼主,你好!
需要跟你说明一下的是,服务器跟一般的台式电脑有很多不同。
1服务器要根据你的需要选择,是存储的还是用作管理中心的,配件侧重点有区别。
2服务器要求必须在一天24小时的长时间运行状态下,保持稳定。零配件的要求非常严格。每台服务器在出厂之前都要经过模拟特定的温度和环境下,长时间运行无异常。不是一般配机能做到的!
324小时快速、专业的上门软硬件服务、维修。
综上:A楼主要买服务器的用途没说明清楚;B不推荐用普通DIY的主机来作服务器。
那么,假设楼主是用这台服务器来作管理中心的话(一般存储服务器都是一些中大型公司存储资料用到),在这里向你推荐一款服务器:
强氧5420T G2 ¥5900
类别 塔式
CPU类型 Xeon E5405
CPU频率(MHz) 2000
处理器描述 标配1个Xeon E5405处理器
支持CPU个数 2
CPU二级缓存 12MB
主板芯片组 Intel 5000V
FSB(总线) 1333MHz
扩展槽 2个32-bit/33MHz PCI插槽、2个100MHz PCI-X插槽、1个PCI Express x8插槽、1个PCI Express x4界面(in x8插槽)
内存类型 FB-DIMM
内存大小 2GB
最大内存容量 32GB
硬盘大小 250GB
硬盘类型 SATA
内部硬盘架数 高达6个非热插拔驱动器托架
IDE控制器 ATA-100
光驱 可选
软驱 通过USB实现
网络控制器 INTEL双千兆网卡
显示芯片 ATI、16MB
标准接口 键盘:1个、鼠标:1个、串行:1个、VGA:1个、USB 20 端口:4个背面,1个正面、RJ-45 网络接口:2个
电源 单电源
电源数量 1
功 率(W) 600
系统支持 Windows 2000/2003 、RedHat Linux、Sun Solaris、SCO Openserver/Unixware等多种 *** 作系统平台
这台服务器的标配是1个Xeon E5405处理器,但支持双处理器,如果需要,这里可以加一个Xeon E5405处理器,¥2200,组成双U。
这样整机的价格就是¥8100,算是目前价格最优惠的双U服务器了。
不知道这样推荐是否对楼主的选择有所帮助,谢谢!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12822761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存