Điểm:1

Cách khắc phục sự cố CPU HW crash trong Ubuntu 18.04

lá cờ cn

Tôi đã mua một máy tính mới cách đây vài tháng. Tôi đã cài đặt Ubuntu 18.04 và nó hoạt động tốt trừ khi tôi biên dịch mã c++: nó bị treo cứng ngay khi có mức sử dụng CPU cao tăng đột biến (hơn 10 lõi).

Cách giải quyết duy nhất là biên dịch với -j8. Đang đi -j10 trở lên sẽ khiến hệ thống gặp sự cố trong hầu hết thời gian. -j16 treo 100% thời gian với các dự án lớn (và không có ccache).

Chi tiết về thiết lập của tôi:

  • Máy tính chơi game Asus: Asus Strix GT15 - Liên kết mua hàng tốt nhất. Bạn đoán ra rồi đấy, tôi mua nó để dành cho GPU... nếu không thì tôi đã tự chế tạo nó với các linh kiện chất lượng tốt (đặc biệt là PSU và tản nhiệt).
  • MB: Asus strix B460-G Gaming
  • CPU: Intel Core i7-10700KF
  • Nguồn điện: Không xác định OEM 500W 80 PLUS
  • Sự cố xảy ra khi GPU không hoạt động (máy tính để bàn).
  • Tôi không thể cài đặt các phiên bản Ubuntu mới hơn do môi trường làm việc bắt buộc.

Những gì tôi đã thử nhưng không giải quyết được sự cố (điều này ít xảy ra hơn một chút nhưng vẫn xảy ra):

Tiểu sử:

  • Tôi đã giảm Turbo xuống mức tối thiểu (1s thay vì 60s), tản nhiệt CPU có vẻ rất kém hiệu quả đối với CPU lò này.
  • Giảm số Ampe VÀ Công suất tối đa mà CPU/Bo mạch chủ được phép sử dụng, trong trường hợp PSU quá yếu.
  • Tăng tốc độ quạt sớm hơn, khi nhiệt độ CPU đạt 50C (nhiệt độ không tốt hơn nhiều, nhưng bây giờ nó rất to khi biên dịch)
  • Đã thay thế "dán nhiệt" OEM bằng một loại dán chất lượng cao (giảm nhiệt độ xuống 2-3C)

Ghi chú sự cố:

  • tạp chíctl -b -1 không có bất kỳ dấu vết nào về sự cố, vì vậy tôi nghĩ đó là sự cố CPU HW...
  • Phím Ctrl-Alt-F* không hoạt động
  • Không thể kết nối qua ssh sau sự cố
  • Âm thanh cũng bị treo khi nó xảy ra
  • Tôi không nghĩ PSU là vấn đề vì tôi có thể sử dụng căng thẳng -c 16./gpu_burn 300 cùng một lúc và hệ thống không bị sập. Căng thẳng chỉ sử dụng sqrt()...

Cảm ơn trước!

Cập nhật số 1

Nhiệt độ:

  • nếu không có các mod cài đặt Bios này, chúng sẽ dễ dàng tăng lên 90C sau khi sử dụng CPU 100% liên tục. Với những tạm thời này, tôi đã không để nó chạy đủ lâu.
  • sau khi sửa đổi, nhiệt độ hiếm khi vượt quá 80C.
  • Việc đóng băng dường như có liên quan đến việc sử dụng CPU tăng đột biến, không phải do nhiệt độ CPU cao.
  • nhiệt độ phòng là 20-22C
  • nhiệt độ CPU nhàn rỗi là 27-28C

Hạt nhân hiện tại:

uname -a
Linux rog 5.4.0-87-generic #98~18.04.1-Ubuntu SMP Thứ tư ngày 22 tháng 9 10:45:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
lá cờ hu
Có thể cần theo dõi nhiệt độ CPU hoặc đặt lại tản nhiệt bằng keo tản nhiệt mới.
Doug Smythies avatar
lá cờ gn
@mikewhthing: OP đã thay đổi thành keo tản nhiệt chất lượng cao và tuyên bố cải tiến 2-3 độ. Tôi đồng ý theo dõi nhiệt độ CPU và đề xuất (như mọi khi) `sudo /turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 6`. I5-10600K của tôi cùng thời và tôi phải kích hoạt HWE trên máy chủ 20.04 để sử dụng kernel mới hơn. Đề nghị bạn thử một hạt nhân mới hơn, giống như một bài kiểm tra.
lá cờ cn
@DougSmythies Cảm ơn những lời đề nghị, tôi sẽ thử một kernel mới hơn và xem về đầu ra của turbostat!
Doug Smythies avatar
lá cờ gn
Việc sử dụng CPU tăng đột biến cũng có thể gây ra sự gia tăng nhiệt độ CPU xảy ra nhanh đến mức bạn không thấy nó trên bất kỳ chương trình giám sát nào. Bạn có đang chạy bất kỳ daemon điều chỉnh nhiệt nào không? Giống như thermald hoặc sử dụng bù TCC?
lá cờ cn
@DougSmythies thermald không nhận ra CPU này nên nó không chạy ...
Doug Smythies avatar
lá cờ gn
Đề xuất một tệp cấu hình thermald đơn giản. xem [tại đây](https://askubuntu.com/questions/1373324/cpu-Temperature-spike-in-90c-only-when-plugged-in) chẳng hạn (giống như tôi đã đề xuất trước đây). Lưu ý rằng trạng thái systemctl có thể phàn nàn, nó có trên máy tính của tôi, nhưng nó thực sự hoạt động tốt.
lá cờ cn
@DougSmythies Có vẻ như hoạt động! Tôi đã sử dụng ví dụ rất đơn giản và chung chung với nhiệt độ 60C. Tôi sẽ quay lại sau một tuần để biết nó có thực sự hoạt động tốt hay không.Nếu bạn tạo một câu trả lời với liên kết này, tôi sẽ chấp nhận nó. Chưa cập nhật kernel, vẫn là 5.4 (phiên bản mới nhất mặc định).
Điểm:1
lá cờ gn

Mọi người nên hiểu các đặc tính nhiệt của máy tính của họ và cung cấp biện pháp bảo vệ thích hợp. Người dùng thường không biết nhiệt độ gói bộ xử lý có thể tăng cực nhanh như thế nào khi tải chức năng theo bước. Một ví dụ từ máy chủ thử nghiệm 20.04 của tôi:

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 độ trên giây
57 133,28 80 độ trên giây
61 133,66 40 độ trên giây
61 132,58 0 độ trên giây
63 133.57  
64 134.12

Tải được áp dụng khoảng 4/5 quãng đường trong thời gian lấy mẫu (25/(133,5 - 1,7) ~= 20% hoặc 4/5 giây) và nhiệt độ đã tăng 16 độ hoặc 800 độ mỗi giây. Tải ở đây là bài kiểm tra tra tấn chính95, bài kiểm tra phụ nhiệt độ tối đa. Máy tính ví dụ được làm mát bằng nước với máy bơm nước luôn bật ở tốc độ tối đa. Bộ xử lý i5-10600K.

Đối với bo mạch chủ ASUS, xin lưu ý rằng cảm biến quạt CPU thực sự là một nhiệt điện trở bên ngoài sẽ làm trễ nhiệt độ gói bộ xử lý thực tế cả về thời gian và giá trị. Trên bo mạch chủ ASUS của tôi, khi tải nặng, cảm biến quạt CPU làm chậm nhiệt độ bộ xử lý thực tế 12 độ.

Cuối cùng, nhiệt độ gói bộ xử lý có thể đạt đến giới hạn tắt máy nhanh đến mức các chương trình giám sát hoặc trình nền khác nhau thậm chí không nhận thấy. Đôi khi bảo vệ nhiệt cần phải phản ứng sớm hơn để có thời gian phát huy tác dụng trước khi bất kỳ nhiệt độ vượt quá nào gây ra tắt máy.

Cách 1: Thermald

<?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 -->

Lưu ý: Tôi đang sử dụng điểm dừng cực kỳ thấp là 41 độ, vì hệ thống của tôi được làm mát bằng nước và tôi không thể đạt được nhiệt độ ví dụ mong muốn.

doug@s19:~$ sudo systemctl start thermald
doug@s19:~$ sudo systemctl status thermald
â thermald.service - Dịch vụ Daemon nhiệt
     Đã tải: đã tải (/lib/systemd/system/thermald.service; đã tắt; giá trị đặt trước của nhà cung cấp: đã bật)
     Hoạt động: hoạt động (đang chạy) kể từ Thứ Sáu 2021-11-05 07:41:45 PDT; 17s trước
   PID chính: 3461 (nhiệt)
      Nhiệm vụ: 2 (giới hạn: 38214)
     Bộ nhớ: 2.2M
     Nhóm C: /system.slice/thermald.service
             ââ3461 /usr/sbin/thermald --systemd --dbus-enable --adaptive

05 tháng 11 07:41:45 s19 systemd[1]: Bắt đầu dịch vụ Daemon nhiệt...
05 tháng 11 07:41:45 s19 systemd[1]: Bắt đầu dịch vụ Daemon nhiệt.
05 tháng 11 07:41:45 s19 thermald[3461]: 22 mức CPUID; họ:mẫu:bước 0x6:a5:5 (6:165:5)
05 tháng 11 07:41:45 s19 thermald[3461]: 22 mức CPUID; họ:mẫu:bước 0x6:a5:5 (6:165:5)
05 tháng 11 07:41:45 s19 thermald[3461]: Chế độ bỏ phiếu được bật: 4
ngày 05 tháng 11 07:41:45 s19 thermald[3461]: id cảm biến 5: Không có sysfs tạm thời để đọc nhiệt độ thô
ngày 05 tháng 11 07:41:45 s19 thermald[3461]: id cảm biến 5: Không có sysfs tạm thời để đọc nhiệt độ thô
ngày 05 tháng 11 07:41:45 s19 thermald[3461]: id cảm biến 5: Không có sysfs tạm thời để đọc nhiệt độ thô
ngày 05 tháng 11 07:41:45 s19 thermald[3461]: Vùng XML: loại cảm biến không hợp lệ []

Mặc dù trạng thái thermald cho thấy một số phàn nàn, nhưng nó thực sự hoạt động bình thường, mặc dù phản hồi hơi chậm:

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

Điều chỉnh điểm ngắt nếu cần để tận dụng tối đa hệ thống của bạn trong khi vẫn ngăn chặn điểm quá cao gây tắt máy. Điểm dừng quá thấp có thể làm giảm hiệu suất hệ thống xuống mức không mong muốn.

Phương pháp 2: Bù trừ TCC

Đầu tiên, tìm thiết bị làm mát nào:

doug@s19:~$ grep . /sys/thiết bị/ảo/nhiệt/làm mát_thiết bị*/loại
/sys/devices/virtual/thermal/cooling_device0/type:Fan
/sys/devices/virtual/thermal/cooling_device10/type:Processor
/sys/devices/virtual/thermal/cooling_device11/type:Processor
/sys/devices/virtual/thermal/cooling_device12/type:Processor
/sys/devices/virtual/thermal/cooling_device13/type:Processor
/sys/devices/virtual/thermal/cooling_device14/type:Processor
/sys/devices/virtual/thermal/cooling_device15/type:Processor
/sys/devices/virtual/thermal/cooling_device16/type:Processor
/sys/devices/virtual/thermal/cooling_device17/type:intel_powerclamp
/sys/devices/virtual/thermal/cooling_device18/type:TCC Offset
/sys/devices/virtual/thermal/cooling_device1/type:Fan
/sys/devices/virtual/thermal/cooling_device2/type:Fan
/sys/devices/virtual/thermal/cooling_device3/type:Fan
/sys/devices/virtual/thermal/cooling_device4/type:Fan
/sys/devices/virtual/thermal/cooling_device5/type:Processor
/sys/devices/virtual/thermal/cooling_device6/type:Processor
/sys/devices/virtual/thermal/cooling_device7/type:Processor
/sys/devices/virtual/thermal/cooling_device8/type:Processor
/sys/devices/virtual/thermal/cooling_device9/type:Processor

Đó là thiết bị 18. Đặt offset rồi kiểm tra qua turbostat mà không có tùy chọn --quiet:

doug@s19:~$ tiếng vang 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
phiên bản turbostat 21.05.04 - Len Brown <[email protected]>
CPUID(0): Các mức CPUID 0x16 của Intel chính hãng
CPUID(1): family:model:stepping 0x6:a5:5 (6:165:5) vi mã 0xec
...
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x3b641422 (41 C) (mặc định 100 - bù 59)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x883f0800 (37 độ C)
...
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
...

Lưu ý rằng việc điều chỉnh hầu như ngay lập tức, 4,8 GHz sẽ là tần số CPU không được điều chỉnh. Lưu ý rằng giới hạn điều chỉnh cho bộ xử lý của tôi (không phải tất cả các bộ xử lý) là tần số xung nhịp tối đa không tăng áp là 4,1 GHz và do đó, nó thực sự không thể đạt đến giới hạn cực kỳ thấp là 41 độ.

lá cờ cn
Tôi đã sử dụng cấu hình thermald chung mà bạn đề xuất và tôi chưa gặp sự cố (hiện tại giới hạn ở 60C). Tôi sẽ thực hiện thêm các bài kiểm tra để tìm hiểu xem nó bị treo ở nhiệt độ nào... Cảm ơn!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.