CentOS 保守的州长,不错的错误

CentOS 保守的州长,不错的错误

我将 CentOS 6 CPU 调速器从按需(默认)更改为保守,并在重新启动 cpufreq 服务后得到:

/etc/rc5.d/S13cpuspeed:第88行:/sys/devices/system/cpu/cpufreq/conservative/ignore_nice_load:文件或目录不存在

所以我该怎么做?我应该创建该文件吗?如果是,我应该在那里放什么?

答案1

对于 3.x 内核

CPUFreq 的接口在较新的内核中发生了变化。这将包括 CentOS 6。您可以在 Red Hat Enterprise Linux (RHEL) 文档中阅读有关整个界面的信息,标题为:第 3 章 核心基础设施和机制

具体是关于CPU频率设置。以下是设置所需的步骤。

CPU频率驱动程序

$ ls -1 /lib/modules/`uname -r`/kernel/arch/x86/kernel/cpu/cpufreq/
acpi-cpufreq.ko
mperf.ko
p4-clockmod.ko
pcc-cpufreq.ko
powernow-k8.ko
speedstep-lib.ko

加载适当的驱动程序

$ modprobe acpi-cpufreq

安装cpupower工具

$ yum install cpupowerutils

查看州长

$ cpupower frequency-info --governors
analyzing CPU 0:
ondemand userspace performance

所以我们目前只加载了这 3 个调控器:一经请求,用户空间, 和表现

加载缺少的调速器

您可以获得所有可用州长的列表,如下所示。

$ ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/
cpufreq_conservative.ko
cpufreq_ondemand.ko
cpufreq_powersave.ko
cpufreq_stats.ko
freq_table.ko

$ modprobe cpufreq_powersave

到目前为止确认模块:

$ lsmod |grep cpuf
cpufreq_powersave       1196  0 
cpufreq_ondemand       10544  8 
acpi_cpufreq            7763  0 
freq_table              4936  2 cpufreq_ondemand,acpi_cpufreq
mperf                   1557  1 acpi_cpufreq

确认加载了哪些调速器

$ cpupower frequency-info --governors
analyzing CPU 0:
powersave ondemand userspace performance

查看当前政策

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3 4 5 6 7
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.60 GHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 3.20 GHz, 3.07 GHz, 2.93 GHz, 2.80 GHz, 2.67 GHz, 2.53 GHz, 2.40 GHz, 2.27 GHz, 2.13 GHz, 2.00 GHz, 1.87 GHz, 1.73 GHz, 1.60 GHz
  available cpufreq governors: powersave, ondemand, userspace, performance
  current policy: frequency should be within 1.60 GHz and 3.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
    2500 MHz max turbo 4 active cores
    2500 MHz max turbo 3 active cores
    2500 MHz max turbo 2 active cores
    2600 MHz max turbo 1 active cores

在上面的输出中你可以看到我当前的策略是一经请求。要调整策略和速度,请使用以下命令:

$ cpupower frequency-set --governor performance
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7

确认新任州长

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3 4 5 6 7
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.60 GHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 3.20 GHz, 3.07 GHz, 2.93 GHz, 2.80 GHz, 2.67 GHz, 2.53 GHz, 2.40 GHz, 2.27 GHz, 2.13 GHz, 2.00 GHz, 1.87 GHz, 1.73 GHz, 1.60 GHz
  available cpufreq governors: powersave, ondemand, userspace, performance
  current policy: frequency should be within 1.60 GHz and 3.20 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.20 GHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
    2500 MHz max turbo 4 active cores
    2500 MHz max turbo 3 active cores
    2500 MHz max turbo 2 active cores
    2600 MHz max turbo 1 active cores

您还可以使用 调整策略内的最小/最大 CPU 频率cpupower frequency-set --min <freq> --max <freq>。看到这个页面以了解有关您可以做什么的更多详细信息cpupower frequency-set

在没有 cpupowerutils 的情况下执行上述操作

最后,如果您没有安装 cpupowerutils 软件包,您可以与它进行交互,就像在之前的 2.6 内核中所做的那样。主要是将值回显到sysfs文件系统中。

例如

$ echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

对于 2.6 内核

您可以阅读有关各种本网站上的 cpufreq 功能

摘自Linux 中使用 cpufreq 调整 CPU 频率

ignore_nice_load - 该参数的值为“0”或“1”。当设置为“0”(默认值)时,所有进程都计入“CPU 利用率”值。当设置为“1”时,以“nice”值运行的进程将不会计入总体使用情况计算中(因此会被忽略)。如果您在笔记本电脑上运行 CPU 密集型计算,并且您不关心需要多长时间才能完成,那么这非常有用,因为您可以对其进行“优化”并阻止它参与是否增加 CPU 频率的决策过程。要打开此功能,请执行以下操作。

sudo sh -c "echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load"

我会在此文件中放入 0,因为这应该是默认值。如果您有任何长时间运行的良好进程(我对此非常怀疑),您可以将其设置为 1。

相关内容