Ubuntu 11 和 12 一开始很快,但后来就慢下来了,CPU 卡住了

Ubuntu 11 和 12 一开始很快,但后来就慢下来了,CPU 卡住了

几周前我开始使用 Ubuntu 11。它安装在一台配备 OCZ SSD 的 DELL M4300 上。默认设置,但我安装了专有的 NVIDIA 显卡和 BROADCOM 无线驱动程序。与 Windows 双启动。

如果我冷启动 Ubuntu,速度会非常快,就像我习惯的 Windows 体验一样。但发生了一些事情,我还没有确定是什么,但系统变得非常慢并且一直保持这种状态。

一开始我以为是 Adob​​e Flash 的问题,因为似乎只有装有 Flash 的网站才会触发此问题。但后来我删除了 Flash,问题仍然存在。

我以为这只是一个过热问题,但现在我已升级到 12.04,据说它解决了我读到的过热问题。也许在我早期的案例中,过热情况是由 Flash 引起的?因此我安装了 Jupiter 进行 CPU 管理,但温度计报告了熟悉的 Windows 端温度 53 摄氏度。将 Jupiter 切换到较低性能也无济于事。

当我检查系统监视器应用程序时,按 CPU 使用率排序,没有明显的问题进程。然而,在图表选项卡中,两个 CPU 核心都固定在 100%!

我注意到,这种缓慢的情况似乎与安装 NVIDIA 驱动程序之前遇到的极差性能类似。我不确定这是否有帮助。

这是对我来说最奇怪的部分 - 虽然温度似乎正常,但即使重启后,系统仍然很慢 - 从 GRUB2 开始,延迟非常明显,一直到Ubuntu 或 Windows!没错,即使是 Windows 端也会受到影响,需要几分钟才能完成启动,而通常(使用我的 SSD)它只需 15 秒即可使用。解决此问题的唯一方法是关机并让部件冷却下来。或者也许它只需要完全关闭电源并启动而不是软重启,温度与它无关? - 这可能吗?

但我知道绝不在 Windows 中也存在这个问题,即使 Windows 变得非常热(135 华氏度),重新启动也足以让它恢复。因此,我认为这不是热量问题,但我无法想象还有什么东西可以在重新启动后幸存下来。

我已完全更新 - 没有待处理的更新。顺便说一句,我也有 NVIDIA 的发布后更新。

如果这听起来与你所知道的事情很接近,但其中一个细节并不完全一致,那么在我看来这可能是一个错误。你能建议进行哪些测试来排除某些可能性吗?

谢谢!

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     T9500  @ 2.60GHz
stepping    : 6
microcode   : 0x60c
cpu MHz     : 800.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida dts tpr_shadow vnmi flexpriority
bogomips    : 5187.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     T9500  @ 2.60GHz
stepping    : 6
microcode   : 0x60c
cpu MHz     : 800.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 1
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida dts tpr_shadow vnmi flexpriority
bogomips    : 5186.94
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

(删除了多余的图表。如果它们仍然相关,您可以在编辑中查看它们)

附言:

%CPU   PID USER     COMMAND
 9.4  2399 jason    gnome-terminal
 6.2  2408 jason    bash
17.3  1117 root     /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
13.7  1667 jason    compiz
 1.3  1960 jason    /usr/lib/unity/unity-panel-service
 1.3  1697 jason    python /usr/bin/jupiter
 0.9  1964 jason    /usr/lib/indicator-appmenu/hud-service
 0.6  1689 jason    nautilus -n
 0.4  1458 jason    //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session

我应该特别强调的是,GRUB2 也可能非常慢。我不知道 GRUB2 在哪些情况下也慢,但当它慢时,它在菜单出现之前和选择之后都很慢 - 虽然对于 GRUB2 的诊断,我很难说出正常速度应该是多少。使用 SSD,我希望 GRUB2 可以立即加载,并且 GRUB2 紫色会在选择后立即消失。唯一可以预料到的延迟是图形模式的变化(虽然我无法猜测为什么这需要任何明显的时间)

答案1

看了你的日志和截图,我首先想到的是发热问题。但你说你的 CPU -英特尔酷睿2 双核 T9500 @ 2.60GHz- 不会超过 60°C,考虑到处理器的非常低的 TDP(35W),这似乎是合理的。

我有一个英特尔酷睿2 四核 Q6600 @ 2.40GHz使用 105W TDP 运行 Gentoo。当我在夏天更新系统(Gentoo 下载源包并直接在目标机器上编译它们)并且散热器不太干净时,我的 CPU 会升至 80°C,但系统不会变慢。这是正确的行为,因为中档英特尔 CPU 即使在这些温度下也能正常工作(并且它们具有非常好的内置热保护功能,可以在 CPU 受到损坏之前关闭它)。

vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz
stepping    : 11
cpu MHz     : 1596.000
cache size  : 4096 KB

这只是说你的 CPU 可以承受超过 60°C 的温度,所以如果其频率下降,这不应该被称为“热量问题”,而更糟糕的是,配置错误问题。

我注意到的另一件事是,您/proc/cpuinfo说您当前的 CPU 频率是 800MHz,但您的系统监视器(您应该重新插入图片,这很重要,因为它提供了 CPU 使用率的时间线)显示 CPU 使用率在很长一段时间内非常高。那么为什么频率仍然这么低呢?

恕我直言,您的 ACPI 调节器有问题。尝试一下cpufreq-info,看看是否列出了所有处理器频率以及正在使用哪种调节器。

analisi della CPU 0:
  modulo acpi-cpufreq
  CPU che operano alla stessa frequenza hardware: 0 1 2 3
  CPU che è necessario siano coordinate dal software: 0
  latenza massima durante la transizione: 10.0 us.
  limiti hardware: 1.60 GHz - 2.39 GHz
  frequenze disponibili: 2.39 GHz, 1.60 GHz
  gestori disponibili: powersave, ondemand, performance
  gestore attuale: la frequenza deve mantenersi tra 1.60 GHz e 2.39 GHz.
                   Il gestore "ondemand" può decidere quale velocità usare
                  in questo intervallo.
  la frequenza attuale della CPU è 1.60 GHz.

等一下,进一步深入谷歌搜索,我发现这个错误(您必须单击“显示页脚”),该页脚在相同的 DELL 型号上显示完全相同。问题应该是模块acpi_cpufreq未在启动时加载,因此您的 CPU 卡在 800MHz。这也解释了为什么在 Windows 上重新启动会恢复“正常”的 CPU 速度:这是因为 Windows 正确使用频率缩放,而 Ubuntu 则没有。

尝试 a sudo modprobe acpi_cpufreq,然后 a,lsmod | grep acpi_cpufreq查看模块是否正确加载。如果在已加载模块列表中看不到它,则意味着出现了问题。输入dmesg | tail以查看模块未插入的原因。

如果模块插入时没有错误(并且 CPU 频率开始正确扩展 -cpufreq-info在启动某些程序时使用多个程序进行检查),但在下次启动时您再次看到问题,则必须找到在启动时加载模块的方法。在上面的线程中,安装似乎hal解决了这个问题。尝试:

sudo aptitude install hal

或者您也可以尝试将其添加进去/etc/modules。祝您好运!

答案2

你检查过 CPU 承受压力时的温度吗?我只在空闲或中等使用率时才看到 136F。实际上 136F 对我来说太低了。我敢肯定,当你的核心在 2600mhz 下以 100% 负载运行时,你的温度要高得多。根据你的 cpuinfo,你的 CPU 似乎已经将自身频率降到了 800mhz,以防止自身温度飙升到 100°C (212F)!根据英特尔的说法,指定限制实际上是 105°C:

缺少链接,请尝试在 Google 中输入 t9500

您可以尝试降低 CPU 电压。我有同一系列的戴尔 Latitude 笔记本,也配有 nvidia 显卡和相同的芯片组。它是戴尔 D630,也存在一些过热问题,因为我的 T9500 在出厂设置下温度会超过 90°C (194F)。然后,当获得恒定负载时,它总是从 2600 切换回最低 800mhz 状态。成功降低电压后,在重度双核任务下,它会保持在 70-80°C(160F) 左右,并防止性能损失。(不再是 2600->800mhz)更不用说由于温度较低而对电池时间和 CPU 健康产生的积极影响了。

如果你不知道降压是什么意思,你可以看看这个。基本上就是以低于默认电压的电压运行 CPU,但速度相同:

http://forum.notebookreview.com/hardware-components-aftermarket-upgrades/235824-undervolting-guide.html

要在 Linux 中实现降压,请浏览此论坛。他们提供了 PPA 和操作指南,从技术上讲,所有让降压在 Linus (ubuntu) 系统中工作的内容。

缺少链接,请尝试在 Google 中打开 phc forums

你可以将他们的 PPA 添加到你的系统中,然后安装“已修补”的内核模块。例如,通过这样做,有一个很好的操作方法:

http://openmindedbrain.info/09/05/2010/undervolting-in-ubuntu-10-04-lucid-lts/

之后,您可以通过进入终端尝试我的设置,并检查您的 T9500 是否可以稳定运行。这些设置的成功率并不能保证,因为所有 CPU 都不同,因此不同型号的电压容差也不同。

这是英特尔的默认 T9500 设置,您可以通过在终端中输入以下内容来查询:

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_controls
14:40 13:34 10:30 8:27 6:23 136:19

我的运行稳定,以确保两个核心具有相同的电压:

echo "14:28 13:22 10:19 8:19 6:19 136:19" > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
echo "14:28 13:22 10:19 8:19 6:19 136:19" > /sys/devices/system/cpu/cpu1/cpufreq/phc_controls

就我对该领域的研究而言,每个条目都是 vid:fid 状态。您的操作系统会根据 CPU 负载从这些条目中进行选择,或者您可以手动选择一个条目,例如使用 Gnome 2 小程序。

Vid = 电压识别

19 大约为 0.9375V,40 为 1.2V 关于这些视频还有一点需要注意,你不能低于 19,即使你可以设置它,因为英特尔已经锁定了最小电压。只有你可以通过连接处理器引脚来欺骗主板来解决这个问题。

fid = 频率识别。它是基本 fsb 的乘数。T9500 200mhz,四倍数据速率。因此:

14 = 14*200= 2800mhz 仅在 pne 核心处于非活动状态时才可能。它代表英特尔动态加速。它是 i5、i7 的 turbo boost 的前身。它不会提供太多额外功能,您可以在戴尔 bios 中禁用此功能。实际上,它不会长时间处于这种状态,因为您的操作系统总是在两个核心上执行一些代码。

13 = 13*200= 2600 两个核心同时处于活动状态的最大可能状态

10 = 10*200= 2000

8 = 8*200= 1600

6 = 6*200= 1200

136 = 8*100= 800mhz!这是频率减半的状态。此视频的第 7 位代表降低的 fsb 频率。因此 128+8=136。

如果您的系统挂起或崩溃,然后在该电压下重新启动,您可以先尝试更高的视频!获得满足您需求的正确电压后,您可以设置启动脚本,以确保始终应用您的设置。

对于 Windows,降压要容易得多,因为您可以简单地下载免费的降压软件,然后试用一下。例如,RightMark CPU Clock Utility (RMClock) 是一个不错的选择:

缺失环节

祝你好运!

相关内容