
Я установил kubuntu 14.04, и возникла проблема с частотой CPU turbo. Я много читал об этом, но не могу найти правильный ответ.
В моем ноутбуке Lenovo Y580 установлен процессор i7-3630QM с частотой 2,40 ГГц и турбо 3,20 ГГц. Если я ставлю процессор на полную нагрузку (с рендерингом в блендере на 8 потоках), частота подскакивает до 3,2 ГГц для всех ядер, но через несколько секунд, когда температура повышается, частота снижается до 2,4 ГГц и остается на ней во время рендеринга (вентилятор не работает на максимальной скорости).
Когда я использовал Ubuntu 12.10, эта проблема не возникала, но она возникла в версиях 13.10 и 14.04.
Кулер моего ноутбука действительно хорош, поэтому нет проблем с перегревом при полной скорости турбонаддува (температура процессора была 85-90°C при 3,2 ГГц в Ubuntu 12.10), поэтому я хочу использовать его на полной скорости. Как я могу использовать процессор с турбонаддувом на полной скорости 3,2 ГГц в Ubuntu 14.04 без этого (температурного?) ограничения?
(после обсуждения с terdon) Я думаю, проблема в том, что частота процессора уменьшается до того, как вентилятор успевает отреагировать на высокую температуру. ПОСЛЕ того, как частота процессора уменьшается с 3,2 ГГц до 2,4 ГГц, вентилятор на мгновение раскручивается, но поскольку частота процессора уже уменьшена, он выделяет меньше тепла, поэтому обороты вентилятора падают. Было бы нормально, если бы после охлаждения процессора частота снова поднялась до 3,2 ГГц, но осталась бы на 2,4 ГГц.
Некоторые измерения:
Вывод программы i7z, когда рендер только начался:
Cpu speed from cpuinfo 2394.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2394 MHz
CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz
Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]
TURBO ENABLED on 4 Cores, Hyper Threading ON
Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 34x/33x/32x/32x
Real Current Frequency 3192.01 MHz [99.75 x 32.00] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp
Core 1 [0]: 3191.98 (32.00x) 100 0 0 0 0 83
Core 2 [2]: 3192.01 (32.00x) 99.8 0 0 0 1 92
Core 3 [4]: 3192.00 (32.00x) 100 0 0 0 0 88
Core 4 [6]: 3192.00 (32.00x) 100 0 0 0 0 76
...
И через 5-10 секунд (тоже при полной нагрузке):
Cpu speed from cpuinfo 2394.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2394 MHz
CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz
Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]
TURBO ENABLED on 4 Cores, Hyper Threading ON
Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 34x/33x/32x/32x
Real Current Frequency 2462.52 MHz [99.75 x 24.69] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp
Core 1 [0]: 2394.01 (24.00x) 100 0 0 0 0 65
Core 2 [2]: 2394.00 (24.00x) 100 0 0 0 0 74
Core 3 [4]: 2462.43 (24.69x) 100 0 0 0 0 71
Core 4 [6]: 2462.52 (24.69x) 99.9 0 0 0 0 61
...
Заранее спасибо за ответы.
решение1
Это не ошибка, это функция! Проверьте температуру, единственная причина, по которой скорость процессора снижается, — это перегрев. Посмотрите на первый вывод, одно из ваших ядер работает при 92°C! Это довольно горячо изначально, и, вероятно, температура была еще выше, прежде чем ваша тактовая частота была снижена.
Вы можете проверить максимальную температуру, которую может выдержать ваш процессор,бегsensors
. Например, для моего Intel i7:
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +77.0°C (high = +95.0°C, crit = +105.0°C)
Core 2: +79.0°C (high = +95.0°C, crit = +105.0°C)
Итак, на моей машине 95,0°C считается высокой, а 105°C — критическая температура, при которой машина будет отключена. Ваши характеристики могут немного отличаться, но 92,0°C — это определенно высокая температура.
Теперь ваша очередьможетзаставить ваш процессор поддерживать ту же тактовую частоту. Это контролируется регулятором процессора. Вы, вероятно, установили его на ondemand
, но доступны следующие параметры:
- Производительностьподдерживает максимально возможную частоту ЦП
- Энергосбережениеподдерживает процессор на минимально возможной частоте
- Пользовательское пространствоэкспортирует доступную информацию о частоте на пользовательский уровень (через файловую систему /sys) и позволяет пользователю управлять частотой ЦП
- По требованиюмасштабирует частоты ЦП в соответствии с загрузкой ЦП (подобно демонам масштабирования частоты пользовательского пространства, но в ядре)
- Консервативныйдействует как ondemand, но увеличивает частоту шаг за шагом
Чтобы изменить регулятор, например, на «Производительность», выполните следующую команду:
echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Однако вероятным результатом будет просто то, что ваш компьютер выключится при достижении высоких температур. Он также может уменьшить масштаб, я не уверен, как реализованы функции безопасности. В любом случае, главное, чтоэтого делать не стоит, так как это может серьезно повредить ваше оборудование.
Есть очень веские причины, по которым ваш компьютер не позволяет вам выйти за пределы определенных температур, и вы не хотите с этим связываться. Я не знаю способа отключить ограничение температуры, и я бы не сказал вам, даже если бы знал. Есть более простые способы, но отключение пределов безопасности температуры, безусловно, является хорошим способом уничтожить ваш компьютер.
решение2
После долгих поисков я нашел ответ на свой вопрос на этой странице: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html
Старый acpi-cpufreq
не может хорошо контролировать турбонаддув, но intel_pstate
драйвер thermald
может. Я включил intel_pstate
и установил thermald
. Теперь процессор может работать в режиме турбонаддува на частоте 3,2 ГГц почти непрерывно. Это означает около 25-30% дополнительной производительности во время рендеринга в блендере.
К сожалению, это также означает больше тепла, поэтому температура ядра моего процессора колеблется около 90-100°C, и иногда он сам себя троттлит. Так что, tredon, ты был прав, мне следует почистить вентилятор. :)
На странице Intel указано, что максимальная температура кристалла моего процессора составляет 105 °C, при превышении этого значения включается функция теплового регулирования, поэтому мне не нужно беспокоиться о перегреве процессора.
К сожалению, я не могу найти ни одного полезного примера по настройке и использованию thermald
, поэтому оставляю параметры по умолчанию, но, как я читал, это может очень помочь в охлаждении.