searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

C-state状态查询及设置

2023-08-28 05:50:27
843
0

     当前社会,能耗问题越来越引起大家的关注,在服务器资源池中同样存在功耗的问题,所以我们希望在服务器空闲时,能够运行在较低的频率,从而降低功耗。C-state就是可以降低服务器功耗的一种手段。C-state有多种睡眠深度,虽然睡眠越深,能耗越低,但是较深的睡眠,就会导致启动时耗时较长,造成性能问题,所以C-state的设置要根据相应的业务需求来设置,并不是越深越好。于是就引出了怎么设置C-state的问题。

    设置C-state的方式有多种,可以通过bios或者内核参数来设置,也可以通过cpupower命令来设置,由于cpupower命令比较方便快捷,所以应用比较多,本文就是介绍cpupower命令的使用方法。

通过help参数,可以看到cpupower有多个参数命令,其中frequency相应的参数是与性能模式及cpu运行的频率相关的。

可以看到cpu当前运行在performance的模式下,使用的驱动为intel_pstate,以及当前的cpu运行频率等。相应的参数,可以通过frequency-set来设置。查看当前各个cpu的运行C-state状态,可以通过cpupower monitor来查看。

从上图可以看出,cpu运行在c1状态。

查看当前cpu的C-state的设置信息,可以使用cpupower idle-info命令。

从上图可以看出该cpu支持POLL、C1、C1E、C6四种状态,但是C1E、C6被disable了,所以cpu的C-state深度最大为C1,这也与我们上面通过cpupower monitor命令看到的信息一致。

想要设置C-state,可以使用cpupower idle-set命令。

idle-set后面可以跟4种参数:

-d 是按照state_no号进行关闭;

-e是按照state_no号进行开启;

-D是按照latency值进行关闭,只要大于等于设置latency的状态,都会被关闭;

-E会开启所有的状态;

执行cpupower idle-set -E命令后,查询idle-info,可以看到所有的状态都开启了。

执行cpupower idle-set -D 10,然后查看idle-info,可以看到latency大于等于10的,都已经关闭了。

执行cpupower idle-set -e 2,然后查看idle-info,可以看到C1E被打开。

执行cpupower idle-set -d 2,然后查看idle-info,可以看到C1E被关闭。

0条评论
0 / 1000
孙****鑫
6文章数
0粉丝数
孙****鑫
6 文章 | 0 粉丝
原创

C-state状态查询及设置

2023-08-28 05:50:27
843
0

     当前社会,能耗问题越来越引起大家的关注,在服务器资源池中同样存在功耗的问题,所以我们希望在服务器空闲时,能够运行在较低的频率,从而降低功耗。C-state就是可以降低服务器功耗的一种手段。C-state有多种睡眠深度,虽然睡眠越深,能耗越低,但是较深的睡眠,就会导致启动时耗时较长,造成性能问题,所以C-state的设置要根据相应的业务需求来设置,并不是越深越好。于是就引出了怎么设置C-state的问题。

    设置C-state的方式有多种,可以通过bios或者内核参数来设置,也可以通过cpupower命令来设置,由于cpupower命令比较方便快捷,所以应用比较多,本文就是介绍cpupower命令的使用方法。

通过help参数,可以看到cpupower有多个参数命令,其中frequency相应的参数是与性能模式及cpu运行的频率相关的。

可以看到cpu当前运行在performance的模式下,使用的驱动为intel_pstate,以及当前的cpu运行频率等。相应的参数,可以通过frequency-set来设置。查看当前各个cpu的运行C-state状态,可以通过cpupower monitor来查看。

从上图可以看出,cpu运行在c1状态。

查看当前cpu的C-state的设置信息,可以使用cpupower idle-info命令。

从上图可以看出该cpu支持POLL、C1、C1E、C6四种状态,但是C1E、C6被disable了,所以cpu的C-state深度最大为C1,这也与我们上面通过cpupower monitor命令看到的信息一致。

想要设置C-state,可以使用cpupower idle-set命令。

idle-set后面可以跟4种参数:

-d 是按照state_no号进行关闭;

-e是按照state_no号进行开启;

-D是按照latency值进行关闭,只要大于等于设置latency的状态,都会被关闭;

-E会开启所有的状态;

执行cpupower idle-set -E命令后,查询idle-info,可以看到所有的状态都开启了。

执行cpupower idle-set -D 10,然后查看idle-info,可以看到latency大于等于10的,都已经关闭了。

执行cpupower idle-set -e 2,然后查看idle-info,可以看到C1E被打开。

执行cpupower idle-set -d 2,然后查看idle-info,可以看到C1E被关闭。

文章来自个人专栏
基础架构中心-内核组
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0