Score:1

วิธีแก้ปัญหาความผิดพลาดของ CPU HW ใน Ubuntu 18.04

ธง cn

ฉันซื้อคอมพิวเตอร์เครื่องใหม่เมื่อไม่กี่เดือนก่อน ฉันติดตั้ง Ubuntu 18.04 และใช้งานได้ดี ยกเว้นเมื่อฉันคอมไพล์โค้ด c++: มันจะค้างทันทีที่มีการใช้งาน CPU สูง (10+ คอร์)

วิธีแก้ปัญหาเดียวที่ใช้งานได้คือการคอมไพล์ด้วย -j8. กำลังไป -j10 ขึ้นไปจะทำให้ระบบล่มเป็นส่วนใหญ่ -j16 ล่ม 100% ของเวลากับโครงการขนาดใหญ่ (และไม่มี ccache)

รายละเอียดเกี่ยวกับการตั้งค่าของฉัน:

  • คอมพิวเตอร์เกม Asus: Asus Strix GT15 - ลิงค์ซื้อที่ดีที่สุด. คุณเดาถูกแล้ว ฉันซื้อมาเพื่อ GPU... ไม่งั้นฉันคงสร้างมันขึ้นมาเองด้วยส่วนประกอบคุณภาพดี (โดยเฉพาะ PSU และฮีทซิงค์)
  • MB: เกม Asus strix B460-G
  • ซีพียู: Intel Core i7-10700KF
  • แหล่งจ่ายไฟ: ไม่รู้จัก OEM 500W 80 PLUS
  • ความผิดพลาดเกิดขึ้นเมื่อ GPU ไม่ได้ใช้งาน (เดสก์ท็อป)
  • ฉันไม่สามารถติดตั้ง Ubuntu เวอร์ชันล่าสุดได้เนื่องจากสภาพแวดล้อมการทำงานที่จำเป็น

สิ่งที่ฉันพยายามแล้ว แต่ไม่สามารถแก้ไขปัญหาได้ (เกิดขึ้นน้อยลงเล็กน้อย แต่ยังคงเกิดขึ้น):

ประวัติ:

  • ฉันลด Turbo ให้เหลือน้อยที่สุด (1 วินาทีแทนที่จะเป็น 60 วินาที) ฮีทซิงค์ของ CPU ดูเหมือนจะไม่มีประสิทธิภาพมากสำหรับ CPU เตาเผานี้
  • ลดจำนวนแอมป์และวัตต์สูงสุดที่อนุญาตให้ใช้ CPU /Motherboard ในกรณีที่ PSU อ่อนเกินไป
  • เพิ่มความเร็วพัดลมให้เร็วขึ้นเมื่ออุณหภูมิ CPU แตะ 50C (อุณหภูมิไม่ดีขึ้นมาก แต่ตอนนี้คอมไพล์เสียงดังมาก)
  • แทนที่ OEM "thermal paste" ด้วย paste คุณภาพสูง (อุณหภูมิลดลง 2-3C)

บันทึกข้อขัดข้อง:

  • บันทึกประจำวันctl -b -1 ไม่มีร่องรอยใดๆ เกี่ยวกับความผิดพลาด ดังนั้นฉันคิดว่ามันเป็นความผิดพลาดของ HW CPU ...
  • ปุ่ม Ctrl-Alt-F* ไม่ทำงาน
  • ไม่สามารถเชื่อมต่อผ่าน ssh หลังจากความผิดพลาด
  • เสียงก็หยุดทำงานเช่นกันเมื่อมันเกิดขึ้น
  • ฉันไม่คิดว่า PSU เป็นปัญหาเพราะฉันใช้ได้ ความเครียด -c 16 และ ./gpu_burn 300 พร้อมกันและระบบไม่ขัดข้อง ความเครียดใช้ sqrt()...

ขอบคุณล่วงหน้า!

อัปเดต #1

อุณหภูมิ:

  • หากไม่มีม็อดการตั้งค่า Bios เหล่านี้ อุณหภูมิจะเพิ่มขึ้นเป็น 90C อย่างง่ายดายหลังจากใช้ CPU 100% อย่างต่อเนื่อง ด้วยอุณหภูมิเหล่านี้ ฉันไม่ปล่อยให้มันทำงานนานพอ
  • หลังจากการปรับเปลี่ยน อุณหภูมิแทบจะไม่เกิน 80C
  • การหยุดทำงานดูเหมือนจะเกี่ยวข้องกับการใช้งาน CPU ที่เพิ่มขึ้นอย่างกะทันหัน ไม่ใช่จากอุณหภูมิ CPU ที่สูง
  • อุณหภูมิห้องอยู่ที่ 20-22C
  • อุณหภูมิ CPU ที่ไม่ได้ใช้งานคือ 27-28C

เคอร์เนลปัจจุบัน:

ชื่อ -a
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 flag
อาจต้องตรวจสอบอุณหภูมิของ CPU หรือรีเซ็ตฮีทซิงค์ด้วยแผ่นระบายความร้อนใหม่
Doug Smythies avatar
gn flag
@mikewhatever : OP เปลี่ยนเป็นแผ่นระบายความร้อนคุณภาพสูงแล้วและอ้างว่าปรับปรุง 2-3 องศา ฉันยอมรับการตรวจสอบอุณหภูมิของ CPU และแนะนำ (เช่นเคย) `sudo /turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 6` i5-10600K ของฉันมาจากยุคเดียวกัน และฉันต้องเปิดใช้งาน HWE บนเซิร์ฟเวอร์ 20.04 เพื่อใช้เคอร์เนลที่ใหม่กว่า แนะนำให้คุณลองใช้เคอร์เนลที่ใหม่กว่า เช่นเดียวกับการทดสอบ
cn flag
@DougSmythies ขอบคุณสำหรับคำแนะนำ ฉันจะลองเคอร์เนลที่ใหม่กว่าและดูเกี่ยวกับเอาต์พุต turbostat !
Doug Smythies avatar
gn flag
การใช้งาน CPU ที่เพิ่มขึ้นอย่างรวดเร็วอาจทำให้อุณหภูมิ CPU เพิ่มขึ้นอย่างรวดเร็วจนคุณไม่เห็นในโปรแกรมตรวจสอบใดๆ คุณกำลังรัน daemon ควบคุมการระบายความร้อนหรือไม่? ชอบ Thermald หรือใช้ TCC offset?
cn flag
@DougSmythies thermald ไม่รู้จัก CPU นี้ ดังนั้นจึงไม่ทำงาน...
Doug Smythies avatar
gn flag
แนะนำไฟล์ปรับแต่ง Thermald อย่างง่าย ดู[ที่นี่](https://askubuntu.com/questions/1373324/cpu-temperature-spike-in-90c-only-when-plugged-in) ตัวอย่างเช่น (เหมือนกับที่ฉันได้แนะนำไปก่อนหน้านี้) โปรดทราบว่าสถานะของ systemctl อาจบ่น ซึ่งเกิดขึ้นในคอมพิวเตอร์ของฉัน แต่ใช้งานได้จริง
cn flag
@DougSmythies ดูเหมือนจะได้ผล! ฉันใช้ตัวอย่างที่เรียบง่ายและทั่วไปกับอุณหภูมิ 60C ฉันจะกลับมาในหนึ่งสัปดาห์เพื่อบอกว่ามันทำงานได้ดีจริงๆ หรือไม่หากคุณสร้างคำตอบด้วยลิงก์นี้ ฉันจะยอมรับ ยังไม่ได้อัปเดตเคอร์เนลยังคงเป็น 5.4 (เวอร์ชันล่าสุดเริ่มต้น)
Score:1
ธง gn

ทุกคนควรเข้าใจลักษณะความร้อนของคอมพิวเตอร์ และเตรียมการป้องกันที่เหมาะสม บ่อยครั้งที่ผู้ใช้ไม่ทราบว่าอุณหภูมิของแพ็คเกจตัวประมวลผลสามารถเพิ่มขึ้นได้เร็วมากเพียงใดเมื่อโหลดฟังก์ชันขั้นตอน ตัวอย่างจากเซิร์ฟเวอร์ทดสอบ 20.04 ของฉัน:

doug@s19:~$ sudo turbostat --เงียบ --สรุป --แสดง PkgWatt, PkgTmp --ช่วง 0.1
PkgTmp Pkgวัตต์
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 โปรดทราบว่าเซ็นเซอร์พัดลม CPU เป็นเทอร์มิสเตอร์ภายนอกซึ่งจะทำให้อุณหภูมิของแพ็คเกจโปรเซสเซอร์ล่าช้าทั้งในด้านเวลาและมูลค่า บนเมนบอร์ด ASUS ของฉัน ภายใต้ภาระหนัก เซ็นเซอร์พัดลม CPU จะหน่วงอุณหภูมิโปรเซสเซอร์จริง 12 องศา

ในท้ายที่สุด เป็นไปได้ที่อุณหภูมิแพ็คเกจโปรเซสเซอร์จะถึงขีดจำกัดการปิดระบบอย่างรวดเร็วจนโปรแกรมตรวจสอบหรือดีมอนต่างๆ ไม่ทันสังเกตด้วยซ้ำ บางครั้งการป้องกันความร้อนจำเป็นต้องตอบสนองเร็วกว่านี้เพื่อให้มีเวลามีผลก่อนที่อุณหภูมิที่สูงเกินไปจะทำให้เกิดการปิดเครื่อง

วิธีที่ 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 -->

หมายเหตุ: ฉันใช้จุดตัดที่ต่ำอย่างเหลือเชื่อที่ 41 องศา เนื่องจากระบบของฉันระบายความร้อนด้วยน้ำและฉันไม่สามารถไปถึงอุณหภูมิตัวอย่างที่ต้องการได้

doug@s19:~$ sudo systemctl เริ่มการระบายความร้อน
doug@s19:~$ sudo systemctl สถานะ Thermald
â thermald.service - บริการภูตความร้อน
     โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/thermald.service; ปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: เปิดใช้งาน)
     ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่ ศ. 2021-11-05 07:41:45 PDT; 17s ที่ผ่านมา
   PID หลัก: 3461 (ความร้อน)
      งาน: 2 (จำกัด: 38214)
     หน่วยความจำ: 2.2M
     CGroup: /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 thermald[3461]: 22 ระดับ CPUID; ครอบครัว:รุ่น:ก้าว 0x6:a5:5 (6:165:5)
05 พ.ย. 07:41:45 น. s19 thermald[3461]: 22 ระดับ CPUID; ครอบครัว:รุ่น:ก้าว 0x6:a5:5 (6:165:5)
05 พ.ย. 07:41:45 น. s19 thermald[3461]: เปิดใช้งานโหมดการสำรวจ: 4
05 พ.ย. 07:41:45 น. s19 thermald[3461]: เซ็นเซอร์ id 5 : ไม่มี sysfs อุณหภูมิสำหรับการอ่านอุณหภูมิดิบ
05 พ.ย. 07:41:45 น. s19 thermald[3461]: เซ็นเซอร์ id 5 : ไม่มี sysfs อุณหภูมิสำหรับการอ่านอุณหภูมิดิบ
05 พ.ย. 07:41:45 น. s19 thermald[3461]: เซ็นเซอร์ id 5 : ไม่มี sysfs อุณหภูมิสำหรับการอ่านอุณหภูมิดิบ
05 พ.ย. 07:41:45 s19 thermald[3461]: โซน XML: ประเภทเซ็นเซอร์ไม่ถูกต้อง []

แม้ว่าสถานะของ Thermald จะแสดงอาการบ่นบ้าง แต่ก็ใช้งานได้จริงแม้ว่าจะตอบสนองช้าเล็กน้อย:

doug@s19:~$ sudo turbostat --เงียบ --สรุป --แสดง PkgWatt, PkgTmp --ช่วง 1
PkgTmp Pkgวัตต์
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

ปรับจุดตัดตามความจำเป็นเพื่อให้ได้ประโยชน์สูงสุดจากระบบของคุณ ในขณะที่ยังคงป้องกันไม่ให้จุดสูงเกินที่กำหนดทำให้เกิดการปิดระบบ การมี trip point ต่ำเกินไปอาจลดประสิทธิภาพของระบบให้อยู่ในระดับที่ไม่ต้องการ

วิธีที่ 2: การชดเชย TCC

ขั้นแรก ค้นหาว่าอุปกรณ์ระบายความร้อนใด:

doug@s19:~$ grep /sys/devices/virtual/thermal/cooling_device*/type
/sys/devices/virtual/thermal/cooling_device0/type:พัดลม
/sys/devices/virtual/thermal/cooling_device10/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device11/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device12/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device13/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device14/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device15/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device16/type:โปรเซสเซอร์
/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:พัดลม
/sys/devices/virtual/thermal/cooling_device2/type:พัดลม
/sys/devices/virtual/thermal/cooling_device3/type:พัดลม
/sys/devices/virtual/thermal/cooling_device4/type:พัดลม
/sys/devices/virtual/thermal/cooling_device5/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device6/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device7/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device8/type:โปรเซสเซอร์
/sys/devices/virtual/thermal/cooling_device9/type:โปรเซสเซอร์

เป็นอุปกรณ์ 18 ตั้งค่า offset แล้วตรวจสอบผ่าน turbostat โดยไม่มีตัวเลือก --quiet:

doug@s19:~$ เสียงสะท้อน 59 | sudo ที /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
turbostat เวอร์ชัน 21.05.04 - Len Brown <[email protected]>
CPUID(0): ระดับ CPUID ของแท้ของ Intel 0x16
CPUID(1): family:model:stepping 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 C)
...
Bzy_MHz PkgTmp Pkg วัตต์
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 GHz จะเป็นความถี่ของ CPU ที่ไม่ได้ควบคุม โปรดทราบว่าขีดจำกัดการควบคุมสำหรับโปรเซสเซอร์ของฉัน (ไม่ใช่โปรเซสเซอร์ทั้งหมด) คือความถี่สัญญาณนาฬิกาสูงสุดที่ไม่ใช่เทอร์โบที่ 4.1 GHz ดังนั้นจึงไม่สามารถเข้าถึงขีดจำกัดต่ำสุดที่น่าขันที่ 41 องศา

cn flag
ฉันใช้การกำหนดค่า Thermald ทั่วไปที่คุณแนะนำ และฉันยังไม่พัง (จำกัดที่ 60C สำหรับตอนนี้) ฉันจะทำการทดสอบเพิ่มเติมเพื่อหาว่าอุณหภูมิใดขัดข้อง... ขอบคุณ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา