Frekuensi CPU selalu minimum, bahkan jika CPU isage 100%

15

Saya tidak tahu kapan masalah ini mulai terjadi, mungkin sudah sejak saya menginstal Ubuntu (16,04, segar). Saya mengamati bahwa Ubuntu lambat luar biasa, lingkungan berombak dan penggunaan CPU tinggi bahkan ketika idle, awalnya saya berpikir bahwa beberapa program memperlambatnya.

Setelah beberapa waktu, saya mencari tahu apa yang menyebabkannya, frekuensi CPU diatur ke 800 MHz, non-stop, terlepas dari keadaan. Frekuensi maksimum seharusnya 3100 MHz dengan Turbo-boost dan biasanya 2000 MHz. Saya sengaja mengatur penggunaan CPU (dari semua 4 utas pada 2 core) menjadi 100% dengan meminta Blender membuat beberapa hal pada CPU, masih tetap pada 800 MHz.

Saya telah mencoba mengatur profil kinerja maksimum, tetapi masih tetap rendah. Saya telah menguji suhunya, sepertinya 60 ° C sepanjang waktu, ketika 87 ° C dianggap tinggi dan 105 ° C kritis. Saya menggunakan daya AC sepanjang waktu, baterai sepertinya tidak dapat diisi ulang sejak beberapa waktu yang lalu.

Inilah yang dilaporkan cpufreq-info:

 driver: intel_pstate
 CPUs which run at the same hardware frequency: 0
 CPUs which need to have their frequency coordinated by software: 0
 maximum transition latency: 0.97 ms.
 hardware limits: 800 MHz - 3.10 GHz
 available cpufreq governors: performance, powersave
 current policy: frequency should be within 2.00 GHz and 3.10 GHz.
                 The governor "performance" may decide which speed to use
                 within this range
 current CPU frequency is 800 MHz (asserted by call to hardware).

Ini sama untuk 3 unit CPU lainnya.

Inilah yang dilaporkan oleh lscpu:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
Stepping:              9
CPU MHz:               799.921
CPU max MHz:           3100,0000
CPU min MHz:           800,0000
BogoMIPS:              3990.99
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              4096K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

Dalam mode hemat daya, berperilaku identik. Jika saya memutus daya AC dan menggunakan baterai, frekuensi CPU melonjak menjadi 2800 MHz, jadi sepertinya hanya masalah daya AC (yang sangat berlawanan dengan apa yang seharusnya dilakukan).

Saya telah mencoba mengatur perubahan profil CPU, saya telah mencoba untuk menonaktifkan penskalaan frekuensi ( Bagaimana saya dapat menonaktifkan penskalaan frekuensi CPU dan mengatur sistem ke kinerja? ), Saya telah mencoba untuk mengatur scaling_min_freq di / sys / devices / system / cpu / cpu [0-3] / cpufreq ke beberapa nilai yang lebih tinggi, tetapi tidak satu pun dari mereka melakukan apa pun. Frekuensi tetap minimal.

Jenis CPU adalah Intel (R) Core (TM) i7-3537U CPU @ 2.00GHz, komputer ini adalah Dell Inspiron 15z Touch.

Saya juga mengalami masalah dengan baterai tidak mengisi meskipun komputer diumpankan dari adaptor AC.

Lebih banyak diagnostik:

$ sudo rdmsr --bitfield 15:8 -d -a 0x198
8
8
8
8
$ sudo rdmsr --bitfield 15:8 -d -a 0x199
9
8
9
9

Dalam kasus 0x199, angka 8 dan 9 tampaknya diijinkan secara acak antara panggilan berurutan.

Dugi
sumber
Ada beberapa laporan serupa belakangan ini, dan seringkali untuk CPU Model 58. hmmm ... Apa merek komputer Anda? Lihat ini , di mana sesuatu di luar driver frekuensi CPU intel_pstate memegang frekuensi rendah. Sementara menekankan CPU Anda pada beban 100%, bisa Anda melihat sudo rdmsr --bitfield 15:8 -d -a 0x198dan sudo rdmsr --bitfield 15:8 -d -a 0x199dan menambahkan output ke pertanyaan Anda. Catatan rdmsrdisediakan oleh paket msr-toolsdan membutuhkan modul msr untuk dimuat terlebih dahulu sudo modprobe msr.
Doug Smythies
Silakan gunakan gubernur hemat daya untuk ujian.
Doug Smythies
Saya telah menambahkan informasi yang diminta ke pos awal. Singkatnya, komputer saya adalah Dell Inspiron 15z Touch, itu tampaknya merupakan contoh Bug 118751 (karena masalah hilang ketika berjalan dengan baterai). Menggunakan gubernur hemat daya tidak mengubah apa pun.
Dugi
Saya telah memperhatikan bahwa persis seperti dengan Marcin Nowak dalam diskusi tentang bug itu, baterai saya tampaknya tidak mengisi sama sekali atau sangat lambat (bahkan jika komputer dimatikan). Namun, daya AC tampaknya tidak lemah.
Dugi
Apakah Anda ingin melanjutkan melalui laporan bug? Sesuatu di luar driver frekuensi CPU intel_pstate memegang frekuensi CPU pada pstate terendah mereka. Jika Anda boot menggunakan driver frekuensi CPU acpi_cpufreq, apa yang Anda dapatkan cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
Doug Smythies

Jawaban:

12

Ternyata masalah ini tidak terkait dengan driver intel_pstate, karena acpi_cpufreq, driver lain, melaporkan nilai yang lebih baik tetapi tidak pernah mengaturnya. OS mungkin tidak punya kendali atas ini.

Ini adalah masalah yang terjadi pada laptop Dell tertentu saat pengisian daya rusak sehingga laptop ini ditenagai oleh AC tetapi tidak dikenakan biaya. Memperbaiki masalah perangkat keras menghilangkan masalah. Dalam hal ini, itu adalah selembar kain yang hampir tidak terlihat di konektor daya yang mencegah kontak listrik.

Dugi
sumber
1
Tapi apa yang harus dilakukan, jika saat ini saya tidak dapat mengganti perangkat keras (charger)?
Vedavrat
Saya akan memeriksa konektornya, ada kemungkinan ada sesuatu yang salah dengannya dan dapat diperbaiki secara manual. Jika tidak, Anda mungkin harus mengalami masalah (non-fatal) dengan CPU lambat. Ini adalah masalah perangkat keras yang tidak terkait dengan OS atau driver.
Dugi
Dell Inspiton 15R N5110 Intel i7-2860QM saya dengan sekarat hingga titik ketika berhenti untuk mengisi daya, meninggalkan saya dengan 800 MHz. Saya membuka BIOS dan menonaktifkan Charger Behaviordan Adapter Warnings. Adonan ditarik dan kembali lagi. Juga di Windows, tetapi dimasukkan ke Profil Kinerja Tinggi. Dan dapatkan kembali CPU saya dan dapatkan 2500 MHz. Jadi dimungkinkan untuk mengatasi masalah tanpa penggantian.
dzmitry.lahoda
1
Untuk memperjelas, baterai Anda tidak sedang diisi? Jadi, jika saya memiliki masalah yang sama dengan OP, tetapi baterai saya sepertinya sedang diisi dengan baik (laptop bertahan berjam-jam di baterai), maka saya memiliki masalah yang berbeda?
Garrett
1
@ Garrett Baterai tidak sedang diisi. Jika adonan diisi, maka itu bukan masalah ini. Masalahnya adalah bahwa BIOS masuk ke situasi yang tidak terduga di mana laptop ini didukung oleh AC, tetapi baterai tidak diisi.
Dugi
3

Ini akan mengatur cpu freq Anda ke kecepatan tertinggi dari terminal apa pun:

sudo cpufreq-set -f `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`

Edit file /etc/init.d/ondemand untuk menambahkan ini secara permanen. ondemand digunakan untuk memodifikasi freq Anda saat login. Standarnya adalah gubernur 'ondemand'. Dengan kata lain Anda mulai 800mhz dan naik sesuai kebutuhan.

Roger Lawhorn
sumber
2
Itu membantu. Terima kasih! Tapi kemudian kita hanya mengubah frekuensi CPU dari minimal (800 Mhz) ke maksimal (3200 MHz), dan bagaimana mengatur untuk menyesuaikan (memvariasikan) frekuensi CPU antara 0,8 dan 3,2 GHz sesuai kebutuhan sesuai pemuatan, tolong? Terima kasih.
Vedavrat
2

Saya memiliki masalah yang sama - cpu freq terjebak di ubuntu dan juga windows, setelah shutdown yang terlalu panas dalam tas laptop dengan laptop yang masih menyala.

Saya pergi ke BIOS, dan menonaktifkan manajemen daya cpu di "power", dan meletakkan semua yang lain ke full throttle (kinerja maksimal). Reboot, kembali ke kecepatan penuh, lalu kembali ke BIOS, dan mengaktifkan manajemen cpu lagi, dan memperbaiki pengaturan lain yang saya ubah sebelumnya. Dan lagi!

EDIT: Ternyata itu masalah baterai. Jika baterai benar-benar rendah, cpu tidak akan mempercepat (saya menganggap untuk menghemat daya). Di ThinkPad saya, saya harus mengisi baterai selama beberapa menit, sampai LED pengisian berhenti berkedip cepat SEBELUM saya menghidupkan mesin lagi.

Joerg Baach
sumber
Saya melakukan hal yang sama pada XPS 15 saya, meskipun saya tidak pernah mengaktifkan kembali manajemen daya. Sejak itu berjalan cepat dan konstan. (Baterai sekarang agak terpengaruh tetapi itu tidak terlalu penting bagi saya)
pandaadb
2

Terkadang laptop saya sepenuhnya mengabaikan pengaturan cpufreq. Saya menemukan ini bekerja:

Cabut kabel listrik dan pasang kembali. Diperbaiki :)

Saya menduga alasannya adalah bahwa mesin menjadi bingung: ia berpikir itu pada baterai, dan ia berpikir baterai rendah, sehingga meng-underclocks CPU untuk menghemat daya.

Kita hanya perlu memberi tahu bahwa itu benar-benar terpasang dan baik-baik saja.

(Laptop Asus x453m di sini, Ubuntu 14.04) YouTube: Sudahkah Anda mencoba mematikannya lagi?

joeytwiddle
sumber
Wow, ya ini berhasil untuk saya!
Tim
0

Saya memiliki masalah yang sama dengan ThinkPad T520 saya. Setelah mencoba semua solusi yang ditemukan di internet, saya siap menginstal ulang Ubuntu. Tapi kemudian saya sudah memeriksa frekuensi CPU di Windows dan ternyata terbatas pada 800 MHz juga.

Jadi itu terlihat sebagai masalah perangkat keras. Tidak jelas bahwa ada masalah dengan pendinginan CPU, karena RPM pendingin rendah dan casing laptop tidak panas atau bahkan hangat.

Karena tidak ada pilihan lain, saya telah membongkar laptop dan mengubah antarmuka termal dalam chip CPU dan GPU. Dan tahukah Anda? Itu membantu!

Tes unit pada salah satu waktu pelaksanaan proyek Django saya adalah 45 menit, sekarang 11 menit.

Jadi, jika Anda akan menghadapi masalah yang sama, terutama pada laptop - mungkin karena antarmuka termal stock kering - setelah 3-5 tahun sering berhenti melakukan pekerjaannya. Dan jangan tertipu oleh radiator yang bersih, pendingin yang hening dan tubuh laptop yang keren.

Igor Pomaranskiy
sumber
0

Solusi pemecahan masalah

# Determinate CPU capabilities
MAX_CPU=$(cpupower frequency-info -l | tail -n1 | cut -d' ' -f2)

# Disable "BD PROCHOT" 
wrmsr -a 0x1FC 262238;

# Set and apply frequencies
cpupower frequency-set \
  -d $(expr $MAX_CPU / 2) \
  -u $MAX_CPU \
  -r \
  -g performance; 
eSlider
sumber
0

Terkadang ini bukan hanya tentang mengatur gubernur penskalaan. Kebijakan penskalaan terkadang ditetapkan antara MIN_FREQ dan MIN_FREQ. Saya harus menulis naskah untuk meluruskan semuanya dalam satu jalan:

#!/bin/bash
echo "Setting all CPUs to " "$@"
CPUINFO_MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)
CPUINFO_MAX_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
MIN=$(echo "scale=1; $CPUINFO_MIN_FREQ / 1000000" | bc)"G"
MAX=$(echo "scale=1; $CPUINFO_MAX_FREQ / 1000000" | bc)"G"

echo "Minimum frequency: " $MIN ", Maximum frequency: " $MAX

GOVERNOR=@0
if [ $# -eq 0 ]
    then
        echo "No arguments supplied, using ONDEMAND governor"
        GOVERNOR="ondemand"
    else
        echo "Governor " $1 " supplied"
        GOVERNOR=$1
fi

for ((i=0;i<$(nproc);i++));
    do cpufreq-set -c $i -r -g $GOVERNOR  --min $MIN --max $MAX;
done
jsaddwater
sumber