Saya menjalankan proyek komputasi terdistribusi, yang biasanya ingin menggunakan 100% CPU. Bagaimana cara membatasi penggunaan CPU dalam hal suhu, bukan persen penggunaan? Juga, berapa suhu maksimum yang aman untuk menjaga Intel i5 berjalan 24/7? (Tanpa batas CPU FahCore_a4 menyebabkan mesin ini berjalan pada 82 derajat Celcius.)
temperature
jeffythedragonslayer
sumber
sumber
Inilah cara saya menyelesaikannya menggunakan bash. Jika ada yang menghasilkan daemon yang lebih baik (lebih baik bertahan di dekat suhu target), silakan posting.
sumber
CPU itu sendiri memiliki mekanisme di mana ia mematikan sendiri jika terlalu panas. (mungkin tidak jika Anda menonaktifkan interupsi SMI, saya tidak yakin tentang itu.)
Aplikasi ruang pengguna utama adalah
lm-sensors
paket. Setelah menginstalnya jalankansensors-detect
untuk mengaturnya, jika mesin Anda sama, Anda dapat menjalankan ini sekali, dan menggunakan hasil temuan di mana-mana.Frekuensi CPU mudah dikendalikan melalui subsistem driver cpufreq. lihat https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling
Anda bisa menulis daemon yang menggunakan sensor lm untuk menyurvei temp dan jika terlalu panas turunkan frekuensi cpu.
sumber
Ini adalah bagaimana saya memecahkan masalah overheating saya yang tidak disebabkan oleh proses tertentu, tetapi oleh kegagalan laptop saya untuk menghilangkan panas yang disebabkan oleh berjalan pada beban CPU yang tinggi untuk periode waktu yang lebih lama. Perbedaan utama dengan solusi yang ditawarkan oleh da code monkey sendiri adalah bahwa saya menggunakan penskalaan frekuensi cpu, alih-alih menggunakan cpulimit pada proses tertentu. Karena saya sudah menginstal dan menjalankan Psensor, saya mendukung Psensor. Daemon seperti monyet kode da yang disarankan juga harus berfungsi, namun diperlukan dua ambang (min dan maks). Dalam Psensor (Sensor Preferences-> Alarm) saya mengatur alarm untuk sensor yang relevan jika menjadi lebih tinggi dari ambang batas tinggi (saya menggunakan 85) atau lebih rendah dari ambang batas rendah (saya menggunakan 80). Dalam Preferensi-> Sensor-> Skrip dieksekusi ketika alarm dinaikkan Saya memanggil skrip saya heatcontrol.sh seperti ini:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Parameter pertama adalah scaling_governor yang valid yang mengurangi frekuensi CPU, mis. Hemat daya. Parameter kedua adalah standar scaling_governor - ondemand untuk sebagian besar sistem. Parameter ketiga adalah suhu antara ambang rendah dan tinggi (nilai pastinya tidak penting). Psensor menambahkan dua parameter lagi: id sensor dan suhu yang dilaporkan.
Dan ini skrip heatcontrol.sh saya:
Bekerja dengan baik untuk saya (UBUNTU 14,04 LTS).
Menjadi pemula untuk Linux dan bash, saya menggunakan sejumlah sumber daya, termasuk:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status
sumber