cpu做为能耗很高的硬件,最近几年厂商在节能方面做了很多处理,在服务器运行时,基于负载情况可调节成节能模式,节省电能,副作用是cpu的频率会降低,导致应用程序性能降低。

有第三方统计,服务器规模达到万台以上时,最大的成本消耗其实是电能

bios 设置

一般服务器的BIOS设置中会有一项来说明是否开启cpu节能模式

但是我们发现有些服务器即使关闭了cpu节能,还是会有被降频的情况。

操作系统

操作系统也能对cpu频率进行调整,主要有两个工具

X86_ENERGY_PERF_POLICY

x86_energy_perf_policy 是红帽提供设置intel cpu节能模式的工具,默认我们服务器都是normal模式,我们要想获取最高性能要开启性能模式。

x86_energy_perf_policy performance

它是通过msr cpu寄存器来调整cpu频率,基本就是写/dev/cpu/*/msr这个设备

参考 http://www.centosabc.com/archives/844

服务器上我们已经调整了此参数,但是还是有机器出现降频情况。最后发现在centos7中还有一个工具可以调节cpu频率,就是cpupower。

cpupower

cpupower是centos7上(实际上是在3.04内核后)引入的一个工具,用于在用户态微调cpu频率。

x86_energy_perf_policy 可理解为“硬调节”,cpupower属于“微调”

调整cpu频率无非就是要在“能耗”和“性能”上取得平衡,基本上调整的策略有以下几种。

而在centos7上有一个kernel-tools的包,提供一些工具来调整和查看cpu的状态

/etc/sysconfig/cpupower
/usr/bin/centrino-decode
/usr/bin/cpupower
/usr/bin/powernow-k8-decode
/usr/bin/tmon
/usr/bin/turbostat
/usr/bin/x86_energy_perf_policy
/usr/lib/systemd/system/cpupower.service

我们默认的策略是这样

cpupower frequency-info --policy
analyzing CPU 0:
1200000 3200000 powersave

powersave运行最小频率,当然cpu也会根据使用繁忙程度来升频率,有可能它的算法没有那么智能,导致你要用cpu时候,它还没来得及升上来。 注意这个文件“/usr/lib/systemd/system/cpupower.service”,说明cpupower已经变成一个服务了,再看下这个文件“/etc/sysconfig/cpupower”

# See "cpupower help" and cpupower(1) for more info
CPUPOWER_START_OPTS="frequency-set -g performance"
CPUPOWER_STOP_OPTS="frequency-set -g ondemand

说明只要启动这个服务,默认就调整成performance模式了。

systemctl start cpupower

其它

查看当前cpu策略

cpupower frequency-info --policy

修改策略

cpupower frequency-set -g powersave

实时查看cpu频率

watch -n 1 "cat /proc/cpuinfo | grep MHz"

内核信息查看

#使用的intel驱动

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver

#intel_pstate驱动详细信息

/sys/devices/system/cpu/intel_pstate/

#各种频率相关

/sys/devices/system/cpu/cpu0/cpufreq/

#查看当前cpu策略

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

本文链接:http://opsdev.cn/post/cpujiangpin.html?winzoom=1

cpu降频问题的更多相关文章

  1. android省电开发之cpu降频

    众所周知,在android系统的耗电量排行里,cpu的耗电占了比较大的一部分比例,也就是说,cpu的使用率和使用频率将直接或间接的影响电量的分配和使用,但很遗憾,android-sdk中没有为andr ...

  2. CentOS7 CPU 降频问题

    CentOS7 系统默认的 CPUPOWER 策略是 powersave 节能模式,Google 了非常多的资料,一直没有找到解决办法,现在分享一下. 执行: tuned-adm profile th ...

  3. [IMX6DL] CPU频率调节模式以及降频方法

    本文转自http://blog.csdn.net/kris_fei/article/details/51822435 Kernel branch: 3.0.35 CPU的频率调节模式:1. Perfo ...

  4. 苹果降频门:旧款iPhone哪些功能受到影响

    要说苹果最近发生的大事,就数网络上传的沸沸扬扬的降频门事件了,近期苹果在新发布的iOS 11系统中新增了一项功能,意在降低旧款手机的电量消耗,但限制了旧款iPhone的性能,那么iPhone有哪些功能 ...

  5. [转帖]海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏?

    海思大佬称华为CPU同频追平AMD 注水吹嘘玩文字游戏? https://t.cj.sina.com.cn/articles/view/6635931736/18b88485800100cz4h?fr ...

  6. Linux限制cpu睿频&限制频率

    .关闭睿频 > /sys/devices/system/cpu/intel_pstate/no_turbo .限制CPU最大频率到50% " | sudo tee /sys/devic ...

  7. 数据库性能高校:CPU使用过高(下)

    CPU使用率过高的常见原因 查询优化器会尽量从CPU,IO和内存资源成本最小的角度,找到最高效的数据访问方式.如果没有正确的索引,或者写的语句本身就会忽略索引, 又或者不准确的统计信息等情况下,查询计 ...

  8. 《Troubleshooting SQL Server》读书笔记-CPU使用率过高(下)

    <Troubleshooting SQL Server>读书笔记-CPU使用率过高(下) 第三章 High CPU Utilization. CPU使用率过高的常见原因 查询优化器会尽量从 ...

  9. Google Developing for Android 一 - 相关上下文介绍

    前几天在G+上看到Google Developers站点,有一个Android系列的文章,分享到个人微博,周末闲来没事就学写了下,把它们简单的翻译了下,没想到一发不可收拾,六篇文章全部都翻译完了,有些 ...

随机推荐

  1. Hibernate框架简介(二)基本使用增、删、改、查

    一.Hibernate框架简介 Hibernate是一个优秀的Java持久化层解决方案,是当今主流的对象-关系映射(ORM,ObjectRelationalMapping)工具 1.1.理解持久化 瞬 ...

  2. 关于ARM立即数的理解

    转自:http://blog.sina.com.cn/s/blog_9bad4f090101e14d.html 一.立即数指令码的组成 ARM公司将32bit指令码分为如下两部分: 32bit立即数通 ...

  3. android 上线流程

    1.首先打开安卓市场官网,在右上角找到注册按钮,先注册成为开发者. 2.而后点击“开发者”进入“开发者中心”页面(也可从网页下方的“开发者入口”进入). 3.选择“发布软件”选项,依次上传创建的APP ...

  4. position sticky 定位

    1.兼容性 https://caniuse.com/#search=sticky chrome.ios和firefox兼容性良好. 2.使用场景 sticky:粘性.粘性布局. 在屏幕范围内时,元素不 ...

  5. jprofiler_windows-x64_9_1注册码

    L-Larry_Lau@163.com#5481-ucjn4a16rvd98#6038 L-Larry_Lau@163.com#36573-fdkscp15axjj6#25257

  6. atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表

    atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表 1. 建模在后自己主动建表 1 1. 传统上,须要首先建表,在业务编码.. 1 2. 模型驱动建表---很多其它 ...

  7. 理解SVG的图形填充规则

    SVG的图形填充规则通过fill-rule属性来指定. 有效值:   nonzero | evenodd | inherit 默认值:   nonzero fill-rule属性用于指定使用哪一种算法 ...

  8. Hystrix的一个坑,queue中的run方法没有被执行?

    今天学的时候随手测了一下Hystrix的queue的异步执行,发现执行queue之后,还没有打印run方法中的内容,程序就结束了: import com.netflix.hystrix.Hystrix ...

  9. scala class和object,trait的区别

    Scala类 1 2 3 4 5 6 7 8 9 10 11 12 13 class Counter {   private var value = 0 // 必须初始化字段   def increm ...

  10. word技巧-文本转化表格

    工作中不断学习,总能得到一点点成就感! 样例: