linux高性能测试之CPU模式批量由cpupower转performance问题

 更新时间:2023年06月25日 15:48:48   作者:Briwisdom  
这篇文章主要介绍了linux高性能测试之CPU模式批量由cpupower转performance问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

linux CPU模式批量由cpupower转performance

CPU动态节能技术用于降低服务器功耗,通过选择系统空闲状态不同的电源管理策略,可以实现不同程度降低服务器功耗,更低的功耗策略意味着CPU唤醒更慢对性能影响更大。

对于对时延和性能要求高的应用,建议关闭CPU的动态调节功能,禁止 CPU休眠,并把CPU频率固定到最高。

通常建议在服务器BIOS中修改电源管理为Performance,如果发现CPU模式为conservative或者powersave,可以使用cpupower设置CPU Performance模式。

cpufreq是一个动态调整cpu频率的模块,系统启动时生成一个文件夹/sys/devices/system/cpu/cpu0/cpufreq/,里面有几个文件,其中scaling_min_freq代表最低频率,scaling_max_freq代表最高频率,scalin_governor代表cpu频率调整模式,用它来控制CPU频率。

cpu的个数可查询路径为:/sys/devices/system/cpu/。

wm@wm-MS-7A70:~/LMHWork$ cd /sys/devices/system/cpu
wm@wm-MS-7A70:/sys/devices/system/cpu$ ls
cpu0  cpu2  cpu4  cpu6  cpufreq  hotplug       isolated    microcode  offline  possible  present  uevent
cpu1  cpu3  cpu5  cpu7  cpuidle  intel_pstate  kernel_max  modalias   online   power     smt      vulnerabilities
wm@wm-MS-7A70:/sys/devices/system/cpu$ 

打开cpu0/cpufreq/scaling_governor默认是powersave模式,可以批量更改为performance模式,这样当测试时候,cpu都能保持高效运行,使测试更加精确。

批量修改方法:

建立一个cpu_set_performance.sh文件,里面代码如下, 如果你的cpu是8个,就在for循环里面写7,否则修改为你的cpu个数。

for i in `seq 0 7`
do
  echo performance > /sys/devices/system/cpu/cpu${i}/cpufreq/scaling_governor
done

cpu模式说明

  • performance: 顾名思义只注重效率,将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。
  • Userspace:最早的cpufreq子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置
  • powersave: 将CPU频率设置为最低的所谓“省电”模式,CPU会固定工作在其支持的最低运行频率上。因此这两种governors 都属于静态governor,即在使用它们时CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种governors 对应的是两种极端的应用场景,使用performance governor 是对系统高性能的最大追求,而使用powersave governor 则是对系统低功耗的最大追求。
  • ondemand: 按需快速动态调整CPU频率, 一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;ondemand:userspace是内核态的检测,用户态调整,效率低。而ondemand正是人们长期以来希望看到的一个完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的governor。 在 ondemand governor 监测到系统负载超过 up_threshold 所设定的百分比时,说明用户当前需要 CPU 提供更强大的处理能力,因此 ondemand governor 会将CPU设置在最高频率上运行。但是当 ondemand governor 监测到系统负载下降,可以降低 CPU 的运行频率时,到底应该降低到哪个频率呢? ondemand governor 的最初实现是在可选的频率范围内调低至下一个可用频率,例如 CPU 支持三个可选频率,分别为 1.67GHz、1.33GHz 和 1GHz ,如果 CPU 运行在 1.67GHz 时 ondemand governor 发现可以降低运行频率,那么 1.33GHz 将被选作降频的目标频率。
  • conservative: 与ondemand不同,平滑地调整CPU频率,频率的升降是渐变式的,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;

ubuntu18.04 CPU更改为performance模式之后,重启自动恢复为powersave模式的解决

performance重启自动恢复为powersave模式的解决

1.安装sysfsutils

 sudo apt-get install sysfsutils

2.查看当前调节器

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

3.关闭ondemand服务

systemctl stop ondemand
systemctl disable ondemand

4.然后更改sysfutils启动文件/etc/sysfs.conf

vim /etc/sysfs.conf

有多少个CPU,就添加对应数量的代码,并更改*为对应的CPU编号

devices/system/cpu/cpu*/cpufreq/scaling_governor = performance

例如,有4个CPU,在sysfs.conf文件中添加如下代码:

devices/system/cpu/cpu0/cpufreq/scaling_governor = performance
devices/system/cpu/cpu1/cpufreq/scaling_governor = performance
devices/system/cpu/cpu2/cpufreq/scaling_governor = performance
devices/system/cpu/cpu3/cpufreq/scaling_governor = performance

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux服务器上创建python虚拟环境过程

    linux服务器上创建python虚拟环境过程

    在Linux服务器上创建Python虚拟环境时,由于需要更高版本的Python(如3.10.0),首先确保openssl版本符合要求,如果openssl版本不足,需要升级,升级openssl后,设置环境变量,并在编译安装Python时指定openssl版本,最后,创建并激活Python虚拟环境
    2025-03-03
  • Centos7 下安装python3及卸载的教程

    Centos7 下安装python3及卸载的教程

    这篇文章主要介绍了Centos7 下安装python3及卸载的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。这篇文章主要介绍了Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示 ,需要的朋友可以参考下
    2019-07-07
  • APACHE 多站点配置方法

    APACHE 多站点配置方法

    有时候开多个站点下面是具体的配置参数,大家看下,应该就可以自由的增加网站了。
    2009-08-08
  • Linux centos如何让普通用户获取root权限

    Linux centos如何让普通用户获取root权限

    这篇文章主要介绍了Linux centos如何让普通用户获取root权限问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Linux环境下安装JDK1.8

    Linux环境下安装JDK1.8

    本文详细讲解了Linux环境下安装JDK1.8的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • centos7系统nginx服务器下phalcon环境搭建方法详解

    centos7系统nginx服务器下phalcon环境搭建方法详解

    这篇文章主要介绍了centos7系统nginx服务器下phalcon环境搭建方法,结合具体实例形式详细分析了centos7的nginx服务器搭建phalcon的具体操作步骤与相关设置技巧,需要的朋友可以参考下
    2019-09-09
  • CentOS7 防火墙firewall的操作命令大全

    CentOS7 防火墙firewall的操作命令大全

    大家好,本篇文章主要讲的是CentOS7 防火墙(firewall)的操作命令大全,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-11-11
  • Ubuntu下如何创建XFS文件系统的LVM详解

    Ubuntu下如何创建XFS文件系统的LVM详解

    这篇文章主要给大家介绍了关于在Ubuntu下如何创建XFS文件系统的LVM的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • .httacces文件的密码保护和防止盗链的实现方法

    .httacces文件的密码保护和防止盗链的实现方法

    尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。
    2008-06-06

最新评论