Рейтинг:1

Как устранить сбой CPU HW в Ubuntu 18.04

флаг cn

Я купил новый компьютер несколько месяцев назад. Я установил Ubuntu 18.04, и он работает нормально, за исключением случаев, когда я компилирую код С++: он сильно зависает, как только возникает всплеск высокой загрузки ЦП (10+ ядер).

Единственным рабочим решением является компиляция с -j8. Идущий -j10 или выше приведет к сбою системы большую часть времени. -j16 падает в 100% случаев с большими проектами (и без ccache).

Подробности о моей настройке:

  • Игровой компьютер Асус: Asus Strix GT15 - ссылка Best Buy. Как вы уже догадались, я купил его для графического процессора... иначе я бы сам собрал его из качественных компонентов (особенно блока питания и радиатора).
  • МБ: Asus strix B460-G Gaming
  • Процессор: Intel Core i7-10700KF
  • Источник питания: Неизвестный OEM 500 Вт 80 PLUS
  • Сбой происходит, когда графический процессор бездействует (рабочий стол).
  • Я не могу установить более свежие версии Ubuntu из-за необходимой рабочей среды.

Что пробовал, но не решил проблему (чуть реже, но все же бывает):

Биос:

  • Я уменьшил Turbo до минимума (1 с вместо 60), радиатор процессора кажется очень неэффективным для этого центрального процессора.
  • Уменьшено количество ампер И максимальная мощность, которую разрешено использовать ЦП / материнской плате, в случае, если блок питания слишком слаб.
  • Увеличена скорость вращения вентилятора раньше, когда температура процессора достигает 50 ° C (температура не намного лучше, но теперь она очень громкая при компиляции)
  • Заменена термопаста OEM на высококачественную пасту (температура снижена на 2-3C)

Заметки об аварии:

  • журналctl -b -1 нет никаких следов сбоя, поэтому я думаю, что это сбой процессора HW ...
  • Клавиши Ctrl-Alt-F* не работают
  • Не могу подключиться по ssh после сбоя
  • Звук тоже падает, когда это происходит
  • Я не думаю, что проблема в блоке питания, потому что я могу использовать стресс -с 16 и ./gpu_burn 300 в то же время и система не дает сбоев. Стресс использует только sqrt()...

Заранее спасибо!

Обновление №1

Темп:

  • без этих модов настроек BIOS они легко разогрелись бы до 90°C после продолжительной загрузки ЦП на 100%. С такими темпами я не позволял ему работать достаточно долго.
  • после доработок температура редко поднимается выше 80 градусов.
  • Зависание, по-видимому, связано с внезапным всплеском загрузки ЦП, а не с высокой температурой ЦП.
  • температура в помещении 20-22С
  • Температура процессора в простое 27-28С

Текущее ядро:

uname -а
Linux rog 5.4.0-87-generic #98~18.04.1-Ubuntu SMP Ср, 22 сентября, 10:45:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
флаг hu
Возможно, потребуется контролировать температуру процессора или сбросить радиатор с новой термопастой.
Doug Smythies avatar
флаг gn
@mikewhatever: ОП уже сменил термопасту на высококачественную и заявляет об улучшении на 2-3 степени. Я согласен отслеживать температуру процессора и предлагаю (как всегда) `sudo /turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 6`. Мой i5-10600K из той же эпохи, и мне пришлось включить HWE на сервере 20.04, чтобы использовать более новое ядро. Предложите вам попробовать более новое ядро, просто в качестве теста.
флаг cn
@DougSmythies Спасибо за предложения, я попробую более новое ядро ​​​​и посмотрю на выходе турбостата!
Doug Smythies avatar
флаг gn
Всплеск загрузки ЦП также может вызвать повышение температуры ЦП, которое происходит так быстро, что вы не видите его ни в одной программе мониторинга. Вы запускаете какой-нибудь тепловой троттлинг-демон? Например, с помощью Thermald или с использованием смещения TCC?
флаг cn
@DougSmythies Thermald не распознал этот процессор, поэтому он не работает...
Doug Smythies avatar
флаг gn
Предложите простой файл конфигурации Thermald. см. [здесь] (https://askubuntu.com/questions/1373324/cpu-temperature-spike-in-90c-only-when-plugged-in), например (это то же самое, что я предлагал ранее). Обратите внимание, что статус systemctl может жаловаться, как на моем компьютере, но на самом деле он работает нормально.
флаг cn
@DougSmythies Кажется, работает! Я использовал очень простой и общий пример с температурой 60°C. Я вернусь через неделю, чтобы сказать, действительно ли это работает хорошо.Если вы создадите ответ с этой ссылкой, я приму его. Ядро еще не обновлял, все еще на 5.4 (по умолчанию последняя версия).
Рейтинг:1
флаг gn

Каждый должен понимать тепловые характеристики своего компьютера и обеспечивать адекватную защиту. Часто пользователи не знают, насколько быстро может увеличиться температура корпуса процессора при ступенчатой ​​нагрузке. Пример с моего тестового сервера 20.04:

doug@s19:~$ sudo turbostat --quiet --Summary --show PkgWatt,PkgTmp --interval 0.1
PkgTmp PkgWatt
33 1,88    
33 1,69    
33 1,56    
33 1,74    
49 24,99 800 градусов в секунду
57 133,28 80 градусов в секунду
61 133,66 40 градусов в секунду
61 132,58 0 градусов в секунду
63 133,57  
64 134,12

Нагрузка была приложена примерно на 4/5 пути за время выборки (25/(133,5 - 1,7) ~= 20%, или 4/5), и температура уже повысилась на 16 градусов, или 800 градусов в секунду. Нагрузкой здесь был тест на пытку Prime95, подтест на максимальную температуру. Компьютер в примере имеет водяное охлаждение, водяной насос всегда работает на максимальной скорости. Процессор i5-10600K.

Для материнских плат ASUS помните, что датчик вентилятора процессора на самом деле является внешним термистором, который будет отставать от фактической температуры корпуса процессора как по времени, так и по величине. На моей материнской плате ASUS при большой нагрузке датчик процессорного вентилятора отстает от фактической температуры процессора на 12 градусов.

В конце концов, температура корпуса процессора может достичь предела выключения так быстро, что различные программы мониторинга или демоны даже не заметят этого. Иногда тепловая защита должна среагировать раньше, чтобы успеть сработать до того, как любое превышение температуры вызовет отключение.

Метод 1: Термальный

<?xml version="1.0"?>

<!--
use "man thermal-conf.xml" for details
-->

<!-- BEGIN -->
<ThermalConfiguration>
        <Platform>
                <Name>Overide CPU default passive</Name>
                <ProductName>*</ProductName>
                <Preference>QUIET</Preference>
                <ThermalZones>
                        <ThermalZone>
                                <Type>cpu</Type>
                                <TripPoints>
                                        <TripPoint>
                                                <Temperature>41000</Temperature>
                                                <type>passive</type>
                                        </TripPoint>
                                </TripPoints>
                        </ThermalZone>
                </ThermalZones>
        </Platform>
</ThermalConfiguration>
<!-- END -->

Примечание. Я использую смехотворно низкую точку срабатывания 41 градус, потому что моя система имеет водяное охлаждение, и я не могу достичь желаемой примерной температуры.

doug@s19:~$ sudo systemctl запустить термик
doug@s19:~$ sudo systemctl статус термальный
▪ Thermald.service — служба Thermal Daemon
     Загружено: загружено (/lib/systemd/system/thermald.service; отключено; предустановка поставщика: включена)
     Активно: активно (работает) с пятницы 05.11.2021 07:41:45 PDT; 17 сек. назад
   Основной PID: 3461 (термический)
      Заданий: 2 (лимит: 38214)
     Память: 2,2 м
     Группа CG: /system.slice/thermald.service
             ââ3461 /usr/sbin/thermald --systemd --dbus-enable --adaptive

05 ноября 07:41:45 s19 systemd[1]: Запуск службы Thermal Daemon...
05 ноября, 07:41:45 s19 systemd[1]: запущена служба Thermal Daemon.
05 ноя 07:41:45 s19 thermod[3461]: 22 уровня CPUID; семейство: модель: степпинг 0x6: a5: 5 (6: 165: 5)
05 ноя 07:41:45 s19 thermod[3461]: 22 уровня CPUID; семейство: модель: степпинг 0x6: a5: 5 (6: 165: 5)
05 ноя 07:41:45 s19 thermod[3461]: Режим опроса включен: 4
05 ноября 07:41:45 s19 thermod [3461]: идентификатор датчика 5: нет temp sysfs для чтения необработанной температуры
05 ноября 07:41:45 s19 thermod [3461]: идентификатор датчика 5: нет temp sysfs для чтения необработанной температуры
05 ноября 07:41:45 s19 thermod [3461]: идентификатор датчика 5: нет temp sysfs для чтения необработанной температуры
05 ноября 07:41:45 s19 thermod[3461]: XML-зона: недопустимый тип датчика []

Несмотря на то, что состояние Thermald показывает некоторые жалобы, на самом деле оно работает правильно, хотя и немного медленно реагирует:

doug@s19:~$ sudo turbostat --quiet --Summary --show PkgWatt,PkgTmp --interval 1
PkgTmp PkgWatt
33 1,44
33 1,34
33 1,33
58 63,26
61 114,43
61 114,68
48 86,59
47 55,48
47 55,53
41 42,77
43 33,43
41 34.30
41 28.04
43 33,63
40 34,45
44 33,57
41 34,40
44 33,85
34 14.50
34 1,33
34 1,33

Отрегулируйте точку срабатывания по мере необходимости, чтобы получить максимальную отдачу от вашей системы, при этом не допуская превышения верхней точки, вызывающей отключение. Слишком низкая точка срабатывания может снизить производительность системы до нежелательного уровня.

Метод 2: Смещение TCC

Сначала найдите, какое охлаждающее устройство:

doug@s19:~$ grep . /sys/devices/virtual/thermal/cooling_device*/тип
/sys/devices/virtual/thermal/cooling_device0/тип:Вентилятор
/sys/devices/virtual/thermal/cooling_device10/тип: Процессор
/sys/devices/virtual/thermal/cooling_device11/тип: Процессор
/sys/devices/virtual/thermal/cooling_device12/тип: Процессор
/sys/devices/virtual/thermal/cooling_device13/тип: Процессор
/sys/devices/virtual/thermal/cooling_device14/тип: Процессор
/sys/devices/virtual/thermal/cooling_device15/тип: Процессор
/sys/devices/virtual/thermal/cooling_device16/тип: Процессор
/sys/devices/virtual/thermal/cooling_device17/type:intel_powerclamp
/sys/devices/virtual/thermal/cooling_device18/type:TCC Offset
/sys/devices/virtual/thermal/cooling_device1/тип: Вентилятор
/sys/devices/virtual/thermal/cooling_device2/тип:Вентилятор
/sys/devices/virtual/thermal/cooling_device3/тип:Вентилятор
/sys/devices/virtual/thermal/cooling_device4/тип:Вентилятор
/sys/devices/virtual/thermal/cooling_device5/тип: Процессор
/sys/devices/virtual/thermal/cooling_device6/тип: Процессор
/sys/devices/virtual/thermal/cooling_device7/тип: Процессор
/sys/devices/virtual/thermal/cooling_device8/тип: Процессор
/sys/devices/virtual/thermal/cooling_device9/тип: Процессор

Это устройство 18. Установите смещение, а затем проверьте его через турбостат без опции --quiet:

doug@s19:~$ echo 59 | sudo tee /sys/devices/virtual/thermal/cooling_device18/cur_state
59
doug@s19:~$ sudo /home/doug/temp-k-git/linux/tools/power/x86/turbostat/turbostat --Summary --show Bzy_MHz,PkgWatt,PkgTmp --interval 0.1
версия турбостата 21.05.04 — Лен Браун <[email protected]>
CPUID(0): уровни GenuineIntel 0x16 CPUID
CPUID(1): семейство:модель:степпинг 0x6:a5:5 (6:165:5) микрокод 0xec
...
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x3b641422 (41 C) (100 по умолчанию - 59 смещение)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x883f0800 (37 С)
...
Bzy_MHz PkgTmp PkgWatt
800 33 1,35
800 33 1,34
800 34 1,40
4187 49 86,23
4100 52 91,72
4100 53 91,29
...

Обратите внимание, что дросселирование происходит практически мгновенно, 4,8 ГГц было бы частотой процессора без регулирования. Обратите внимание, что предел дросселирования для моего процессора (не для всех процессоров) — это максимальная тактовая частота без турбонаддува, равная 4,1 ГГц, поэтому он не может достичь смехотворно низкого предела в 41 градус.

флаг cn
Я использовал общую конфигурацию Thermald, которую вы предложили, и у меня еще не было сбоев (на данный момент ограничено 60C). Я проведу дополнительные тесты, чтобы выяснить, при какой температуре происходит сбой... Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.