หยุดซีพียูจากความร้อนสูงเกินไป


11

เมื่อใช้งานแอพอย่างเข้มข้นเช่นเครื่องปั่นซีพียูของฉันสามารถรับได้มากถึง 80.CI สามารถโอเวอร์คล็อก CPU ด้วยตนเองได้จาก BIOS แต่ฉันต้องการให้พีซีของฉันตรวจพบเมื่ออุณหภูมิ CPU สูงเกินไปและช้าลงจนกระทั่งทุกอย่างเย็นลง มีวิธีการทำเช่นนี้โดยอัตโนมัติหรือแม้กระทั่งวิธีการด้วยตนเองเพื่อลดความเร็วของ CPU ลงจาก Ubuntu


2
ดูเหมือนว่าคำขอคุณลักษณะสำหรับ Blender ในระหว่างนี้ คุณสามารถใช้ Performance Governor และหยุดแอพด้วยตนเองด้วยการตรวจสอบระบบ
ลึก

คำตอบ:


11

โซลูชัน Intel Ubuntu 16.04+ สำหรับ Sandy Bridge และโปรเซสเซอร์รุ่นใหม่

จาก ( wiki.debian.org -thermald ) มี Debian's (Ubuntu's) เขียนเกี่ยวกับthermald A Linux daemon สำหรับทำความเย็นแท็บเล็ตและแล็ปท็อป ใช้งานได้กับ Sandy Bridge (รุ่นที่ 2) และ Intel Cores รุ่นใหม่กว่าเท่านั้น เมื่ออุณหภูมิของระบบถึงเกณฑ์ที่กำหนด Linux daemon จะเปิดใช้งานวิธีการระบายความร้อนต่างๆเพื่อพยายามทำให้ระบบเย็นลง

Linux thermal daemon (thermald) ตรวจสอบและควบคุมอุณหภูมิในแล็ปท็อปแท็บเล็ตพีซีที่มี Intel sandy bridge และ Intel CPU รุ่นล่าสุด เมื่ออุณหภูมิของระบบถึงเกณฑ์ที่กำหนด Linux daemon จะเปิดใช้งานวิธีการระบายความร้อนต่างๆเพื่อพยายามทำให้ระบบเย็นลง

มันทำงานในสองโหมด:

โหมดการกำหนดค่าเป็นศูนย์

  • สำหรับผู้ใช้ส่วนใหญ่นี่จะเพียงพอที่จะทำให้อุณหภูมิ CPU ของระบบอยู่ภายใต้การควบคุม สิ่งนี้ใช้เซ็นเซอร์อุณหภูมิ DTS และใช้ไดรเวอร์ Intel P state, ไดรเวอร์แคลมป์พาวเวอร์, การควบคุมการ จำกัด พลังงานเฉลี่ยและ cpufreq เป็นวิธีการระบายความร้อน

โหมดกำหนดค่าที่ผู้ใช้กำหนด

  • สิ่งนี้อนุญาตให้มีการกำหนดค่าสไตล์ ACPI ในไฟล์กำหนดค่าความร้อน XML สามารถใช้เพื่อแก้ไขการกำหนดค่า ACPI ของ buggy หรือปรับแต่งอย่างละเอียดโดยการเพิ่มเซ็นเซอร์และอุปกรณ์ทำความเย็นเพิ่มเติม นี่เป็นขั้นตอนแรกในการนำการควบคุมความร้อนวงปิดในโหมดผู้ใช้และสามารถปรับปรุงได้ตามความคิดเห็นและข้อเสนอแนะของชุมชน

ติดตั้งอย่างไร

apt-get install thermald

ทีแอลพี

จากArch Linux :

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

โปรดอ่านลิงก์ Arch Linux TLP แบบเต็มด้านบน มีปัญหากับ Nvidia ที่ต้องการเปลี่ยนแปลงการกำหนดค่า

หลังจากการทดลองและข้อผิดพลาดมากมายกับแพ็คเกจอื่น ๆ ฉันประสบความสำเร็จในการใช้ TLP มันช่วยให้การควบคุมที่เหนือกว่าและพัดลมทำงานต่อเนื่องกับthermaldและP-รัฐ

เหล่านี้เป็นคำแนะนำการติดตั้งสำหรับอูบุนตู 15.04+ พูดถึง TLP ไม่เพียง แต่ช่วยลดความร้อนสูงเกินไป แต่ก็ยืดอายุแบตเตอรี่เกินไป

นับตั้งแต่ติดตั้ง TLP Powerclamp (อธิบายไว้ด้านล่าง) จะไม่ถูกเรียกใช้อีกครั้ง


Intel Powerclamp

ไดรเวอร์Powerclampของ Intel มีการกำหนดไว้ที่นี่ ( kernel.org - Intel Power Clamp.txt ) และเป็นส่วนหนึ่งของthermald ที่อธิบายข้างต้น คำพูดโดยตรงสำหรับPowerclampจากลิงค์:

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

ปัจจุบันการใช้ P-state, T-state (การปรับสัญญาณนาฬิกา) และ CPU จะถูกใช้สำหรับการควบคุมปริมาณ CPU

บน Intel CPUs C-state ให้การลดพลังงานอย่างมีประสิทธิภาพ แต่จนถึงขณะนี้พวกเขาใช้โอกาสเพียงอย่างเดียวโดยขึ้นอยู่กับปริมาณงาน ด้วยการพัฒนาไดร์เวอร์ intel_powerclamp วิธีการซิงโครไนซ์การไม่ใช้งานในทุกหัวข้อ CPU ออนไลน์ได้รับการแนะนำ เป้าหมายคือเพื่อให้เกิดการอยู่อาศัย C-state บังคับและสามารถควบคุมได้

การทดสอบ / การวิเคราะห์นั้นเกิดขึ้นในด้านพลังงานประสิทธิภาพการขยายขีดความสามารถและประสบการณ์ของผู้ใช้ ในหลายกรณีความได้เปรียบที่ชัดเจนจะปรากฏขึ้นเหนือการใช้ CPU ออฟไลน์หรือปรับแต่งสัญญาณนาฬิกาของ CPU


คุณจะรู้ได้อย่างไรว่า Powerclamp กำลังทำงานอยู่

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

lsmod | grep intel

และคุณจะเห็นรายการที่คล้ายกับสิ่งนี้:

btintel                16384  1 btusb
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
intel_rapl             20480  0
intel_powerclamp       16384  0
   (.... more intel drivers ....)
snd                    81920  18 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device

หากคุณเห็นintel_raplและintel_powerclampรู้ว่ามันใช้งานได้และรอให้อุณหภูมิสูงกว่า 85C


Powerclamp ที่ใช้งานแสดงโดย Conky

นี่คือภาพหน้าจอเมื่อPowerclampฉีดรอบการนอนหลับ:

ฉีด Kidie

ตามปกติในระบบนี้ความเร็วสัญญาณนาฬิกาของ CPU คือ 2400 Mhz ถึง 3400 Mhz เมื่อดูวิดีโอ HTML5 และเปิด 10 แท็บ Chrome การใช้งาน CPU โดยทั่วไปประมาณ 9% ถึง 12% ใน 8 CPU เมื่อทุกอย่างร้อนแรงเกินไป ( 86C ) Powerclampเริ่มเล่นแล้วสิ่งนี้ก็เกิดขึ้น:

  • ความเร็วของ CPU จะลดลงเป็น 1200 Mhz
  • การใช้งาน CPU สูงถึง 80% นี่คือความเข้าใจผิดเพราะ 70% พิเศษคือเวลานอน
  • กระบวนการ CPU 9 อันดับแรกมักจะเป็นกระบวนการ Chrome 5 หรือ 6 กระบวนการบวกกับ Xorg, Conky, Pulse Audio และ kworker เป็นครั้งคราว อย่างไรก็ตามตอนนี้ 8 ใน 10 อันดับแรกเป็นกระบวนการkidle_inject / xโดยที่x0 ถึง 7 สำหรับ 8 CPU แรก

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


ปิดใช้งาน Intel Turbo Boost

ย้อนกลับไปใน "cool old days" ของ Ubuntu 14.04 Intel Turbo Boost เสียดังนั้นความเร็วโปรเซสเซอร์ของฉันจึงผันผวนระหว่าง 1200 Mhz และ 2400 Mhz หลังจากอัปเกรดเป็น Ubuntu 16.04 มันจะสูงถึง 3400 Mhz (3.4 Ghz) เพราะ Turbo Boost ทำงานได้ในที่สุด แต่มันก็ยกความร้อน

วิธีปิดใช้งานการใช้ Intel Turbo Boost:

echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

การแก้ไขระยะสั้นในสถานการณ์นี้

ในการ "แก้ปัญหา" แก้ไขปัญหานี้ฉันดึงแผ่นทำความเย็นแล็ปท็อปเก่าที่มีแฟน ๆ สองคนออกจากตู้เสื้อผ้าและโผล่ใต้แล็ปท็อป สิ่งนี้ทำให้ temps ลดลงถึง 63C ภายใต้ภาระงานเดียวกัน

ขั้นตอนต่อไปจะอัดอากาศในช่องระบายอากาศ หลังจากนั้นขั้นตอนสุดท้ายจะเป็นคูลลิ่งฮีทซิงค์ใหม่ที่มีท่อสำหรับ CPU และ GPU วางความร้อนที่ดีเช่น Arctic Silver 5 เป็นสิ่งจำเป็นในการดำเนินการนั้น แฟนใหม่ติดตั้งแล้วเมื่อปีที่แล้วและดูเหมือนว่าจะทำงานได้

อัปเดต 25 มกราคม 2560

ปล่องพัดลมระบายอากาศที่มีอากาศอัดและอุณหภูมิลดลงจาก 63C เป็น 56C ยังคงใช้แผ่นระบายความร้อนแล็ปท็อปใจคุณ

อัปเดตเมื่อ 06 ส.ค. 2560

เคยใช้TLP(อธิบายไว้ข้างต้น) มาหลายเดือนแล้วและอุณหภูมิคงที่ประมาณ 50 องศาเซลเซียสและประสิทธิภาพของพัดลมก็เหมาะสมที่สุด


ระวังไดรเวอร์ควบคุมพัดลมมากเกินไป

เพราะนี่คือ Dell ฉันได้ติดตั้ง I8K Fan Monitor / Control โดยหวังว่ามันจะเร่งความเร็วพัดลมเร็วขึ้นและเร็วขึ้น เมื่อฉันพิมพ์sensorsฉันจะได้รับ:

$ sensors
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan: 3963 RPM
CPU:            +63.0°C  
Ambient:        +49.0°C  
GPU:            +54.0°C  
Other:          +79.0°C  

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +64.0°C  (high = +87.0°C, crit = +105.0°C)
Core 2:         +63.0°C  (high = +87.0°C, crit = +105.0°C)
Core 3:         +57.0°C  (high = +87.0°C, crit = +105.0°C)

ละเว้น Temps เสมือนพวกเขาจะออกไปรับประทานอาหารกลางวัน ภายใต้ Ubuntu 14.04 ถูกต้องและฉันใช้temp 1ในการแสดงผล Conky หลังจากอัพเกรด Ubuntu 16.04 ฉันต้องอ้างถึงอุณหภูมิที่สามที่ไม่ปรากฏบนหน้าจอนี้ เพื่อดูอุณหภูมิจริงคุณสามารถใช้คำสั่งนี้:

$ cat /sys/class/thermal/thermal_zone*/temp
27800
29800
62000

เมื่อฉันพิมพ์:

$ lsmod |grep dell
dell_wmi               16384  0
sparse_keymap          16384  1 dell_wmi
dell_laptop            20480  0
dell_smbios            16384  2 dell_wmi,dell_laptop
dcdbas                 16384  1 dell_smbios
dell_smm_hwmon         16384  0
wmi                    16384  1 dell_wmi
video                  40960  3 dell_wmi,dell_laptop,i915

ฉันเห็นdell_smm_hwmonเคอร์เนลโมดูล / ไดรเวอร์ เมื่อฉัน google คนขับและI8Kผู้คนรายงานว่าไดรเวอร์สองตัวทำให้ระบบค้างเป็นวินาทีในทุกๆ 10 วินาที ผมมีปัญหานี้ด้วยตัวเองเพื่อให้มีการลบการควบคุมพัดลม I8K

มีจำนวนมากสาธารณูปโภคอื่น ๆ และวิธีการระบายความร้อนที่มี แต่จะได้รับTL; DR


ว้าวนั่นเป็นคำตอบที่ค่อนข้าง สิ่งดีๆมากมายที่นี่
Qwertie

ฉันติดตั้ง thermald แล้ว แต่จะใช้งาน powerclamp ได้อย่างไร? มันทำงานตามค่าเริ่มต้นหรือไม่ สิ่งที่มันพยายามที่จะไม่เกิน?

@cipricus เมื่อคุณใช้: คุณควรเห็นนี้:$ lsmod | grep power intel_powerclamp 16384 0หากไม่ใช่Powerclampอาจถูกขึ้นบัญชีดำด้วยเหตุผลบางประการ ธรณีประตูอุณหภูมิคือ 85C แต่ฉันคิดว่าคุณสามารถเปลี่ยนได้ ดู: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix

4

ฉันสร้างโปรแกรมสำหรับปัญหานี้ จำกัด CPU ของคุณตามอุณหภูมิที่ต้องการ มันทำงานแบบนี้:

sudo ./temp_throttle.sh 80

คำสั่งนั้นจะทำให้แกน CPU ของคุณช้าลงเมื่อถึง 80 องศาเซลเซียส เมื่ออุณหภูมิลดลงแกน CPU จะได้รับอนุญาตให้ทำงานได้เร็วขึ้นอีกครั้ง คุณสามารถค้นหาtemp_throttle ที่นี่


ในการรันสคริปต์หลักเมื่อเริ่มต้นด้วย sudo และป้อนรหัสผ่านใน gnome-terminal หนึ่งสามารถสร้างสคริปต์ขนาดเล็ก:

#!/bin/bash

cd "/path/to/the/directory/temp-throttle-stable/"
gnome-terminal -e 'sudo ./temp_throttle.sh 80' --geometry=45x15 --hide-menubar --profile=hold  

( --geometry=45x15เปิดหน้าจอเทอร์มินัลเล็ก ๆ--profile=holdใช้โปรไฟล์ gnome-terminal ชื่อ "hold" ที่จะต้องสร้างขึ้นด้วยตัวเลือก "เมื่อคำสั่งออกจาก: เปิดเทอร์มินัลค้างไว้" --hide-menubarซ่อนเมนูสำหรับหน้าต่างนั้น)

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

ป้อนคำอธิบายรูปภาพที่นี่


1
สคริปต์ที่ดี ฉันยังสร้างสคริปต์เพื่อให้พีซีเข้าสู่โหมดสลีปเมื่อถึงอุณหภูมิสูงสุด ลิงก์
kenn

มันเป็นคำตอบที่ยอดเยี่ยมและทำงานได้ใน 16.04


สคริปต์ที่ต้องการsudoพลังที่ฉันใส่ลงไปcronโดยใช้rebootตัวเลือกต่างๆ วิธีนี้ไม่จำเป็นต้องป้อนรหัสผ่านในการบูต มีวิธีอื่นในการทำ แต่cronเป็นวิธีที่ง่ายที่สุดสำหรับฉันในการติดตั้ง
WinEunuuchs2Unix

FYI คำตอบที่ฉันโพสต์บนIntel Powerclamp จำกัด ปริมาณ CPU กลับไปที่ความเร็วต่ำสุด อย่างไรก็ตามมันยังใส่สถานะไม่ได้ใช้งานเพื่อให้ CPU ไม่ทำอะไรเลย ฉันคิดว่าสคริปต์ของคุณยอดเยี่ยม แต่คุณอาจต้องการทราบว่า Intel กำลังทำอะไร ฉันเชื่อว่ามันเป็นโอเพ่นซอร์สและคุณสามารถศึกษาได้หากคุณสนใจ
WinEunuuchs2Unix

1

คุณสามารถ จำกัด ความถี่ของ CPU เพื่อให้สามารถลดความถี่ลงและสามารถควบคุมความร้อนจาก CPU

cpufreq-selector -f <mention the frq u want in the Khz>

สิ่งนี้เป็นสิ่งถาวรหรือจะย้อนกลับไปหลังจากการรีสตาร์ทหรือไม่
Qwertie

มันเป็นชุดถาวรและถ้าคุณต้องการแก้ไขมันอีกครั้งคุณต้อง
rɑːdʒɑ

คุณต้องติดตั้งgnome-appletsเพื่อใช้งานได้
kiri

@ minerz029 นี่คือคำสั่ง terminal เพื่อนของฉัน
rɑːdʒɑ

1
@rajagenupula ฉันได้รับคำสั่งไม่พบข้อผิดพลาดThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
kiri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.