热门搜索:安全 黑客 方法 简单方法 部分 官方 国防 相信 盲目 广告 写给 科大
windows 导航: windows 7  windows 2008   windows vista   windows xp   windows 2003   windows 2000   Vmware   嵌入式系统
linux/unix 导航: linux/unix   Ubuntu linux   Fedora   Leopard   ibm Aix   Freebsd   netbsd   openbsd   sco unix   solaris   系统资讯
您现在的位置:嘉文IT资讯网 >> 操作系统 >> linux/unix >> linuxunix >> 浏览文章
linuxunix |
减少 Linux 电耗,第 1 部分: CPUfreq 子系统
作者:嘉文IT资讯网 日期:2009年10月25日 来源:本站原创  【字体: 】   我要评论(0)
核心提示:  任何人在考虑业务成本或环境问题时都不得不重视电源效率。在本文中,我们将讨论如何使用 Linux CPUfreq 子系统和内核调控器来修改处理器的频率,从而改善系统效率,而不会对性能造成显著影响。但是,根据实际硬件的
 任何人在考虑业务成本或环境问题时都不得不重视电源效率。在本文中,我们将讨论如何使用 Linux CPUfreq 子系统和内核调控器来修改处理器的频率,从而改善系统效率,而不会对性能造成显著影响。但是,根据实际硬件的不同,电源效率调优存在一些限制(详见本系列的第 2 部分)。

  Linux CPUfreq 子系统

  从 2.6.0 Linux 内核开始,您可以通过 CPUfreq 子系统动态调整处理器频率。当处理器以较低的时钟速度运行时,它们消耗的电能和产生的热量也相对较少。时钟速度的这种缩放可以控制系统在未全力运行时消耗较少电能。

  CPUfreq 结构利用调控器和守护程序来为系统设置静态或动态电源策略。动态调控器(详见下文)可以根据 CPU 利用率来调整 CPU 频率,从而有助于节省电能,而不会牺牲性能。这些调控器还允许一些用户调优,因此您可以自定义并轻松地更改变频系数。此外,sched_mc_power_savings 和 sched_smt_power_savings 设置将利用整固线程来节省电能。

  关于本系列

  在本系列中,学习如何调优基于 Linux 的 IBM System x 服务器的电源效率。您将了解内核调控器和它们的设置,以及如何使用它们;您还将了解经过调优的调控器对能源性能和电子商务工作负荷的效果。这些示例基于运行一台运行 Red Hat Enterprise Linux version 5.2 (RHEL 5.2) 的 System x 服务器,但其概念适用于任何 2.6.x 内核,以及支持变频的任何处理器类型。

  第 1 部分介绍调优系统电源效率所需的组件和概念,包括 Linux CPUfreq 子系统、CPU 电源状态和 CPU/设备性能状态,以及 5 种内核调控器。

  第 2 部分将更加详细地讨论 Linux CPUfreq 子系统的常规设置,以及 5 种内核调控器 —performance、powersave、userspace、 ondemand 和 conservative— 和它们的设置。

编缉推荐阅读以下文章 第 3 部分将比较经过调优和未经过调优的 5 种内核调控器的性能,以展示通过调优系统能实现的成果。

  CPU 电源状态(C State)和 CPU/设备性能状态(P State)

  在开始 CPUfreq 讨论之前,我们先来看看 CPU 电源状态和 CPU/设备性能状态。

  CPU 电源状态:几乎全是空闲

  CPU 电源状态(不包括处理器运行时的 C0 状态)是空闲状态,处理器将解锁并关闭组件来节省电能。CPU 电源状态程度越深,采取的电能节省措施就越多 — 比如说停止处理器时钟或停止外部中断请求。这些状态帮助空闲中的系统节省电能。

  此外,C1E 模式(或称作 Enhanced C1 或 C1 Enhanced Mode)也可以帮助空闲系统节省电能。同样通过降低电压和频率,C1E 尝试比传统 C1 状态(只会停止时钟信号)提供更大的电能节省。事实上,C1E 能够比任何 CPUfreq 调控器更快地降低电压/频率。

  并非所有处理器都有这些选项,但是要使用 C 电源状态和 CIE,请确保启用了 BIOS 选项 CPU C State 和 C1E(或者类似的选项),以便于在空闲时实现更大的电能节省。一些系统支持 C3 甚至 C6 尝试休眠状态。

  记住,CPU 电源状态程度越深,节省的电能就越多。

  CPU/设备性能状态:运转中

  CPU/设备性能状态是与 CPU 频率和电压相关的运转状态。CPU/设备性能状态值越大,处理器所使用的频率和电压就越低。CPUfreq 调控器使用 CPU/设备性能状态来修改频率和降低功耗。

  您需要在系统上启用 Processor Performance States BIOS 选项(或类似的选项),以便于使用 CPU/设备性能状态和 CPUfreq 调控器。图 1 是 C 和 CPU/设备性能状态的简化图。

  图 1. CPU 电源状态和 CPU/设备性能状态

编缉推荐阅读以下文章

点击浏览下一页

  CPUfreq 子系统的前提条件

  在使用 CPUfreq 子系统之前,您需要满足下节所述的前提条件。CPUfreq 在 RHEL 5.2 中是默认启用的(在其他分发版中通常也是启用的)。检查 CPUfreq 是否已经启用的一种快捷方法是查看 /sys 文件系统。如果在 /sys/devices/system/cpu/cpu*/cpufreq/ 中看到了 cpufreq 目录,则表示您的系统当前已经启用了 CPUfreq。如果未在其中看到此目录,则依照以下步骤确保一切就绪。

  首先,确保您的处理器可以支持变频。

  接下来,查看内核配置文件。通常,所有需要的配置默认都已针对 RHEL 5.2 内核设置好,但您可能希望更改一些设置来实现所需的系统启动状态。以下选项位于配置文件的 CPU Frequency scaling 部分:

  CONFIG_CPU_FREQ

  必须将此选项设置为 y,以便于利用内核的 CPU 变频功能。

  CONFIG_CPU_FREQ_GOV_PERFORMANCE, CONFIG_CPU_FREQ_GOV_POWERSAVE,
  CONFIG_CPU_FREQ_GOV_USERSPACE, CONFIG_CPU_FREQ_GOV_ONDEMAND,
  CONFIG_CPU_FREQ_GOV_CONSERVATIVE

  这些选项分别对应各个可用的 CPUfreq 调控器。要使用调控器,需要将配置选项设置为 y 或者 m。如果将选项设置为 y,则该调控器的模块将嵌入到内核中。如果将选项设置为 m,则每次在启动时都需要通过发出以下部分或全部命令来载入模块:

  modprobe cpufreq_performance
  modprobe cpufreq_powersave
  modprobe cpufreq_userspace
  modprobe cpufreq_ondemand
  modprobe cpufreq_conservative

编缉推荐阅读以下文章

  • 暂无相关文章
    或者,如果选择了 m,那么您可以将调控器模块添加到 /etc/rc.local,以便在启动时载入模块。还需注意,通过将 CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE 或 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE 设置为 y,您可以将用户空间或性能调控器设置为默认。

      此外,要使用 sched_mc_power_savings 和 sched_smt_power_savings(稍后讨论), 应确保在配置文件的 Processor type and features 部分将 CONFIG_SCHED_MC 和 CONFIG_SCHED_SMT 选项设置为 y。

      要让配置文件中的更改生效,您需要重建和启动内核。

      调控器简介

      CPUfreq 子系统可以使用 5 种内核调控器。这些调控器根据特定标准设置处理器频率;其中一些根据系统或用户对输入的更改而动态更改频率。本文将重点讨论 RHEL 5.2,它基于 2.6.18 内核,因此所有这些调控器都可以使用。(本系列的第 2 和第 3 部分将详细讨论调控器。)

      性能调控器:最高的频率

      性能调控器会静态将处理器设置为可用的最高频率。您可以调整此调控器可用的频率范围。顾名思义,此调控器的目标的通过将处理器时钟速度设置为最大级别而实现最大的系统性能。此调控器默认不会尝试提供任何电能节省,但您可以通过调优调控器来更改它所选的频率。

      电能节省调控器:最低的频率

      另一方面,电能节省调控器会静态将处理器设置为可用的最低频率。您仍然可以调整此调控器可用的频率范围。此调控器的作用是始终以最低的速度运行。显然,这有时会影响性能,因为无论处理器多么繁忙,系统都不会提高频率。

      事实上,此调控器经常都不会节省任何电能,因为最有效的电能节省通常来自空闲时通过输入 C 电源状态实现的节省。使用电能节省调控器会拖慢进程的运行,因为它会以最低的频率运行;因此,系统需要花更长的时间进入空闲状态,然后才能获得 C 电源状态节省。
    减少 Linux 电耗,第 1 部分: CPUfreq 子系统

Tags:系统 | 安全 | 编程 | 数据库 | 设计 | 网络 | 通信 | 办公 | 服务器 | 软件应用
发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
上一篇:没有了
下一篇:Unix与Windows文件名的差异
相关文章列表
·Linux即将进入个人电脑
·Linux系统如何为硬盘做配额
·减少 Linux 电耗,第 1 部分: CP
·使用public/private key让putty(
·剖析Linux 动态库: API与进程
·linux下破解SAM密码
·Unix与Windows文件名的差异
网友评论
最新新闻
· 使用public/private key让putty(
· 剖析Linux 动态库: API与进程
· Linux即将进入个人电脑
· linux下破解SAM密码
· Linux系统如何为硬盘做配额
· Unix与Windows文件名的差异
· 减少 Linux 电耗,第 1 部分: CP
推荐新闻
热门新闻
· 使用public/private key让putty(
· 剖析Linux 动态库: API与进程
· Linux即将进入个人电脑
· linux下破解SAM密码
· Linux系统如何为硬盘做配额
· Unix与Windows文件名的差异
· 减少 Linux 电耗,第 1 部分: CP

关于我们 | 联系我们 | 版权申明 | 广告服务 | 网站地图 | 免责条款

Copyright 2010-2015 Powered by jiawenit.com,嘉文网络科技开发 All Rights Reserved.
服务电话:15095181829 E-Mail:suijiawen@163.com
售前咨询服务QQ:点击这里给我发消息 售后服务技术支持QQ: 点击这里给我发消息点击这里给我发消息