У меня периодически происходят сбои Ubuntu 20.04 на Shuttle XPC Cube SH87R с 32 ГБ оперативной памяти Kingston DDR3-1600, процессором Intel(R) Core(TM) i7-4770 с тактовой частотой 3,40 ГГц, графическим процессором NVIDIA GeForce GTX 1660 SUPER, двумя жесткими дисками Toshiba по 3 ТБ в программном зеркале RAID 1 mdadm и LVM, одним твердотельным накопителем объемом 256 ГБ, 32 ГБ из которых используются в качестве подкачки.
Я использую новейший фирменный драйвер Linux от Nvidia 515.65.01 с DKMS, и система полностью обновлена до последних обновлений.
Я провел несколько обширных тестов памяти Memtest86+, выполнив несколько полных проходов, и никаких ошибок не обнаружено.
Сбой происходит нечасто - может быть, раз в месяц или два - и для диагностики проблемы я настроил дампы ядра в /var/crash. Но я не уверен, как использовать информацию о сбое, которая выглядит следующим образом.
ls -al /var/crash
total 48
drwxrwsrwt 3 root whoopsie 4096 Aug 25 22:26 .
drwxr-xr-x 17 root root 4096 Nov 4 2021 ..
drwxr-sr-x 2 root whoopsie 4096 Aug 25 22:24 202208252224
-rw-r--r-- 1 root whoopsie 412 Aug 28 09:29 kexec_cmd
-rw-r----- 1 root whoopsie 30651 Aug 25 22:26 linux-image-5.4.0-125-generic-202208252224.crash
ls -al /var/crash/whoopsie/
total 1315908
drwxr-sr-x 2 root whoopsie 4096 Aug 25 22:24 .
drwxrwsrwt 3 root whoopsie 4096 Aug 25 22:26 ..
-rw------- 1 root whoopsie 78133 Aug 25 22:24 dmesg.202208252224
-rw------- 1 root whoopsie 1347392784 Aug 25 22:24 dump.202208252224
Содержимое файла dmesg непосредственно перед сбоем выглядит следующим образом:
[ 3528.253961] TCP: br0: Driver has suspect GRO implementation, TCP performance may be compromised.
[ 5154.707563] mce: [Hardware Error]: CPU 0: Machine Check Exception: 5 Bank 4: ba00000058000402
[ 5154.716109] mce: [Hardware Error]: RIP !INEXACT! 10:<ffffffffbc813ebc> {filemap_map_pages+0x2dc/0x380}
[ 5154.725475] mce: [Hardware Error]: TSC ff0bc5dd3d3
[ 5154.730364] mce: [Hardware Error]: PROCESSOR 0:306c3 TIME 1661458894 SOCKET 0 APIC 0 microcode 28
[ 5154.739238] mce: [Hardware Error]: Run the above through 'mcelog --ascii'
[ 5154.746078] mce: [Hardware Error]: Machine check: Processor context corrupt
[ 5154.753078] Kernel panic - not syncing: Fatal machine check
Буду признателен за любые предложения.
Ответ на комментарии:
Я не уверен, что виновата неправильная настройка BIOS, так как он стабильно работает с текущей настройкой BIOS уже много лет, 24/7. Параметры BIOS довольно базовые. Я не могу изменить напряжение ЦП. Я мог бы снизить частоту ОЗУ, но metest86+ не показывает ошибок. Интересно, относится ли исключение mce к банку кэш-памяти или к ОЗУ? Если это кэш, то, полагаю, ЦП устает — в конце концов, это ПК 2013 года, который работал безостановочно, только с заменой батареи cmos и заменой зеркальных дисков через mdadm. В настоящее время я склоняюсь к микрокоду или напряжению ЦП. Я заменил оригинальный блок питания 300 Вт на 500 Вт, когда устанавливал Nvidia 1660, который использует максимум 125 Вт, а ЦП рассчитан на 84 Вт. Думаю, я мог бы поэкспериментировать, поставить старый блок питания и посмотреть, увеличится ли напряжение ЦП выше текущего значения 1,0. Но 300 Вт, вероятно, немного маловато, но для тестирования с небольшой мощностью GPU это дало бы подсказку, я полагаю. Я могу получить новый блок питания на 500 Вт примерно за 90$.