我有一台旧笔记本电脑,我用它作为电视上的媒体中心,我通常会安装/重新安装/卸载不同的操作系统和应用程序,以使其尽可能顺畅地运行。
我注意到一件很奇怪的事情。我的笔记本电脑是 HP Pavilion G62,它有一个运行频率为 1800MHz 的三核 AMD 处理器。当我在 Windows 7 中启动 XBMC 并查看处理器速度时,它清楚地显示为 1800MHz。然而,当我从 Ubuntu 启动它时,无论是从启动器还是作为会话启动,它都显示处理器只有 800MHz。
我想进一步调查,所以我在 Windows 中加载了 DXDIAG 来查看速度是多少。果然,它显示为 1800mhz。然而,在 Ubuntu 中启动 HardInfo 时,它告诉我每个核心的速度如下:1500mhz、1500mhz 和 800mhz。
这是否意味着宣传的处理器速度和 Windows 检测到的速度都是假的或四舍五入的?还是 Ubuntu 在检测我的处理器速度时出现了问题,我的系统运行得并不理想?我倾向于说后者……主要是因为 Windows 的运行速度似乎比 Ubuntu 流畅得多。
答案1
Ubuntu 默认使用一经请求频率调节器。要检查/切换调节器,请cpufrequtils
按如下方式安装软件包:
sudo apt-get install cpufrequtils
要检查每个核心运行的当前速度/调节器:
cpufreq-info
您可以将所有核心设置为表现像这样:
sudo cpufreq-set -r -g performance
您可以确认所有核心现在都以其最大频率运行,如下所示:
grep MHz /proc/cpuinfo
笔记:此更改是暂时的。一旦您重新启动,它将恢复为一经请求。
答案2
理论背景:在典型的计算机中,CPU 大部分时间处于空闲状态。为了节省电量,现代 CPU 实现了频率缩放- 即当负载较低时,操作系统可以告诉 CPU 切换到较低的频率。该技术在英特尔处理器中称为 SpeedStep,在 AMD 处理器中称为 Cool'n'Quiet。
在 Linux 中,内核频率调节由基础设施实现cpufreq
,它使用“调节器”的概念来控制频率。
默认调节器为“ondemand”,一旦处理器利用率超过 95%,频率就会增加。这样 CPU 就可以在空闲时节省一些电量,但在有事情要做时切换到全性能。存在一些转换延迟(以毫秒为单位),因此当空闲的 CPU 突然负载很大时,它会继续以低频率运行几毫秒,然后切换到全功率,因此在某些情况下,这可能会导致性能略低于始终全速运行时的性能。
有其他州长,包括始终以全频运行 CPU 的“性能”调节器。这消除了切换延迟,但可能会增加功耗。
您可以尝试使用另一个答案中建议的不同调控器,但我怀疑它会产生显著的效果。除非它在 99% 的情况下都有意义,否则他们不会将其设为默认值 :)
不过,回到你的问题:最有可能的是,Windows 会向您显示最大可能的 CPU 频率(他们在 CPU 包装盒上宣传的频率),而 Ubuntu 会向您显示每个 CPU 核心在特定时刻的实际运行频率。这并不意味着 CPU 在 Ubuntu 中运行得更慢。如果 Ubuntu 在您的笔记本电脑上运行缓慢,则很可能是由其他原因造成的 - 例如,内存低、硬盘速度慢等。现代 Ubuntu 肯定比 Windows XP 需要更多的资源,而 Windows XP 很可能在较旧的笔记本电脑上找到。
更多技术阅读: