CPU आवृति हमेशा न्यूनतम होती है, भले ही CPU आइसेज 100% हो


15

मुझे नहीं पता कि यह मुद्दा कब शुरू हुआ, यह उस समय से हो सकता है जब मैंने उबंटू (16.04, ताजा) स्थापित किया था। मैं देख रहा था कि उबंटू असामान्य रूप से धीमा था, पर्यावरण तड़का हुआ था और बेकार होने पर भी सीपीयू का उपयोग अधिक था, शुरू में मैंने सोचा कि कुछ कार्यक्रम इसे धीमा कर रहा था।

कुछ समय बाद, मुझे पता चला कि यह क्या कारण था, सीपीयू आवृत्ति 800 मेगाहर्ट्ज पर सेट है, गैर-रोक, परिस्थितियों की परवाह किए बिना। टर्बो-बूस्ट और आमतौर पर 2000 मेगाहर्ट्ज के साथ अधिकतम आवृत्ति 3100 मेगाहर्ट्ज माना जाता है। मैंने जानबूझकर CPU उपयोग (2 कोर पर सभी 4 थ्रेड्स में से 100) को ब्लेंडर पर सीपीयू पर कुछ सामान जमा करके सेट किया है, यह अभी भी 800 मेगाहर्ट्ज पर बना हुआ है।

मैंने अधिकतम प्रदर्शन प्रोफ़ाइल सेट करने की कोशिश की है, लेकिन यह अभी भी कम है। मैंने तापमान का परीक्षण किया है, यह हर समय 60 ° C लगता है, जब 87 ° C को उच्च और 105 ° C को महत्वपूर्ण माना जाता है। मैं हर समय एसी पावर पर चल रहा हूं, बैटरी कुछ समय पहले से रिचार्जिंग के लिए दिखाई नहीं देती है।

यह वही है जो 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).

यह अन्य 3 सीपीयू इकाइयों के लिए समान है।

यह वही है जो 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

पॉवरसेव मोड में, यह पहचान का व्यवहार करता है। अगर मैं एसी पावर को डिस्कनेक्ट करता हूं और बैटरी पर चलता हूं, तो सीपीयू फ्रिक्वेंसी 2800 मेगाहर्ट्ज तक आसमान छू लेती है, इसलिए यह केवल एसी पावर (जो इसके विपरीत जो करना है, उसके विपरीत है) को एक मुद्दा लगता है।

मैंने सीपीयू प्रोफाइल को बदलने की कोशिश की है, मैंने आवृत्ति स्केलिंग को अक्षम करने की कोशिश की है ( मैं सीपीयू आवृत्ति स्केलिंग को कैसे अक्षम कर सकता हूं और सिस्टम को प्रदर्शन के लिए सेट कर सकता हूं ? ), मैंने स्केलिंग_मिन_फ्रेक को / एसआईएस / डिवाइस / सिस्टम / सीपीयू / सीपीयू में सेट करने की कोशिश की है। [0-3] / cpufreq कुछ उच्च मूल्य के लिए, लेकिन दोनों में से कुछ भी नहीं किया। आवृत्ति न्यूनतम रहती है।

CPU प्रकार Intel (R) Core (TM) i7-3537U CPU @ 2.00GHz है, कंप्यूटर डेल इंस्पिरॉन 15z टच है।

मेरे पास बैटरी के साथ एक समस्या भी है, भले ही कंप्यूटर एसी एडेप्टर से खिलाया गया हो।

अधिक निदान:

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

0x199 के मामले में, 8 और 9 नंबर लगातार कॉल के बीच बेतरतीब ढंग से अनुमत दिखाई देते हैं।


हाल ही में कुछ समान रिपोर्टें आई हैं, और अक्सर सीपीयू मॉडल 58 के लिए। हम्मम ... आपका कंप्यूटर कौन सा ब्रांड है? इस पर एक नज़र डालें , जहां Intel_pstate CPU फ्रीक्वेंसी ड्राइवर के लिए कुछ बाहरी आवृत्ति कम है। अपने CPU के बल देते जबकि 100% लोड पर, अपने आप को देखो सकता है sudo rdmsr --bitfield 15:8 -d -a 0x198और sudo rdmsr --bitfield 15:8 -d -a 0x199और अपने प्रश्न का उत्पादन जोड़ें। नोट rdmsrपैकेज द्वारा प्रदान किया गया है msr-toolsऔर इसके जरिए msr मॉड्यूल को पहले लोड करने की आवश्यकता है sudo modprobe msr
डग स्माइथिज

परीक्षण के लिए कृपया पॉवरसेव गवर्नर का उपयोग करें।
डग स्माइथीज

मैंने प्रारंभिक पोस्ट में अनुरोधित जानकारी जोड़ी है। संक्षेप में, मेरा कंप्यूटर डेल इंस्पिरॉन 15z टच है, यह बग 118751 का एक उदाहरण प्रतीत होता है (क्योंकि समस्या बैटरी पर चलने पर गायब हो जाती है)। पॉवरवेव गवर्नर के उपयोग से कुछ भी नहीं बदलता है।
दुगी

मैंने देखा है कि ठीक उसी तरह बग के बारे में चर्चा में Marcin Nowak के साथ, मेरी बैटरी बिल्कुल भी चार्ज नहीं होती है या बहुत धीरे-धीरे (भले ही कंप्यूटर बंद हो)। एसी शक्ति किसी भी तरह से कमजोर नहीं लगती है, हालांकि।
दुगी

क्या आप बग रिपोर्ट जारी रखना चाहते हैं? Intel_pstate CPU फ्रीक्वेंसी ड्राइवर के लिए कुछ बाहरी सीपीयू आवृत्तियों को उनके सबसे कम pstates पर पकड़ रहा है। यदि आप acpi_cpufreq CPU फ़्रीक्वेंसी ड्राइवर का उपयोग करके बूट करते हैं, तो आपको क्या मिलेगा cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
डग स्माइथिज

जवाबों:


12

यह पता चला कि यह समस्या Intel_pstate ड्राइवर से असंबंधित थी, क्योंकि अन्य ड्राइवर acpi_cpufreq ने बेहतर मानों की रिपोर्ट की, लेकिन उन्हें कभी सेट नहीं किया। OS का शायद इस पर कोई नियंत्रण नहीं था।

यह एक ऐसा मुद्दा है जो कुछ डेल लैपटॉप के साथ होता है जब चार्जिंग इस तरह से टूट जाती है कि लैपटॉप एसी द्वारा संचालित होता है लेकिन चार्ज नहीं किया जाता है। हार्डवेयर समस्या को हल करने से समस्या दूर हो जाती है। इस मामले में, यह बिजली कनेक्टर में कपड़े का लगभग अदृश्य टुकड़ा था जो विद्युत संपर्क को रोकता था।


1
लेकिन क्या करना है, अगर अभी मैं हार्डवेयर (चार्जर) को बदल नहीं सकता हूं?
वेदव्रत

मैं कनेक्टर की जांच करूंगा, एक मौका है कि इसमें कुछ गड़बड़ है और इसे मैन्युअल रूप से ठीक किया जा सकता है। यदि नहीं, तो आपको शायद धीमी सीपीयू के साथ (गैर-घातक) समस्याओं का सामना करना पड़ेगा। यह OS या ड्राइवरों से असंबंधित एक हार्डवेयर समस्या है।
डुगी

मेरा डेल इंस्पिटॉन 15 आर N5110 इंटेल i7-2860QM बिंदु के साथ मरने वाले बल्लेबाज के साथ था जब यह चार्ज करने के लिए बंद हो जाता है, मुझे 800 मेगाहर्ट्ज के साथ छोड़ रहा है। मैंने BIOS खोला और अक्षम किया Charger Behaviorऔर Adapter Warnings। बंद बल्लेबाज फिर से और वापस। विंडोज में भी, लेकिन हाई परफॉर्मेंस प्रोफाइल के लिए। और मेरा सीपीयू वापस मिल गया और 2500 मेगाहर्ट्ज मिल गया। इसलिए प्रतिस्थापन के बिना मुद्दे को दूर करना संभव है।
dzmitry.lahoda

1
स्पष्ट करने के लिए, आपकी बैटरी चार्ज नहीं हो रही थी? तो, अगर मुझे ओपी के समान समस्या है, लेकिन मेरी बैटरी ठीक चार्ज हो रही है (लैपटॉप बैटरी पर कई घंटे तक रहता है), तो मुझे एक अलग समस्या है?
गैरेट

1
@ बैटरी को चार्ज नहीं किया जा रहा था। अगर बैटर चार्ज करता है, तो यह समस्या नहीं है। समस्या यह थी कि BIOS एक अप्रत्याशित स्थिति में आ गया था जहां लैपटॉप एसी द्वारा संचालित था, लेकिन बैटरी चार्ज नहीं की गई थी।
डुगी

3

यह आपके cpu freq को किसी भी टर्मिनल से शीर्ष गति पर सेट करेगा:

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

स्थायी रूप से जोड़ने के लिए /etc/init.d/ondemand फ़ाइल संपादित करें। ondemand का उपयोग लॉगिन के दौरान आपके freq को संशोधित करने के लिए किया जाता है। डिफ़ॉल्ट 'ऑनडेमैंड' गवर्नर है। दूसरे शब्दों में आप 800mhz से शुरू करते हैं और आवश्यकतानुसार चलते हैं।


2
यह मदद करता है। धन्यवाद! लेकिन फिर हम सिर्फ सीपीयू फ्रीक्वेंसी को न्यूनतम (800 मेगाहर्ट्ज) से अधिकतम (3200 मेगाहर्ट्ज) में बदलते हैं, और 0.8 और 3.2 गीगाहर्ट्ज के बीच सीपीयू फ्रीक्वेंसी को एडजस्ट करने के लिए कैसे सेटअप करते हैं? धन्यवाद।
वेदव्रत

2

मेरे पास एक ही मुद्दा था - सीपीयू फ्रीक उबंटू और साथ ही खिड़कियों में फंस गया, लैपटॉप के साथ कैरी मामले में एक ओवरहेड शटडाउन के बाद भी।

मैं "पावर" में BIOS, और अक्षम सीपीयू पावर प्रबंधन पर गया, और बाकी सब कुछ पूर्ण गला घोंटना (अधिकतम प्रदर्शन) के लिए रखा। रिबूट किया गया, पूरी गति से वापस, फिर वापस BIOS में, और फिर से सीपीयू प्रबंधन को सक्षम किया, और जो अन्य सेटिंग्स मैंने पहले बदल दीं, उन्हें ठीक किया। Et voilà!

संपादित करें: यह एक बैटरी समस्या है। यदि बैटरी वास्तव में कम है, तो सीपीयू गति नहीं देगा (मैं बिजली बचाने के लिए मानता हूं)। मेरे थिंकपैड पर मुझे कुछ मिनटों के लिए बैटरी चार्ज करनी होती है, जब तक कि चार्जिंग एलईडी तेजी से फ़्लिकर करना बंद न कर दे, जब तक कि मैं दोबारा मशीन चालू नहीं कर देता।


मैंने अपने एक्सपीएस 15 पर भी ऐसा ही किया, हालांकि मैंने बिजली प्रबंधन को फिर से सक्षम नहीं किया। जब से यह तेजी से और निरंतर चलता है। (बैटरी अब थोड़ी प्रभावित हुई है लेकिन मेरे लिए बहुत महत्वपूर्ण नहीं है)
पांडा

2

कभी-कभी मेरा लैपटॉप पूरी तरह से cpufreq सेटिंग्स को नजरअंदाज कर देता है। मुझे यह काम मिला:

पावर कॉर्ड को अनप्लग करें और इसे फिर से प्लग करें। निश्चित :)

मैं कारण का अनुमान लगा रहा हूं कि मशीन भ्रमित हो गई: यह सोचता है कि यह बैटरी पर है, और यह सोचता है कि बैटरी कम है, इसलिए यह सीपीयू को बिजली बचाने के लिए रेखांकित करता है।

हमें सिर्फ यह बताने की जरूरत है कि यह वास्तव में प्लग इन है और ठीक कर रहा है।

(Asus x453m लैपटॉप यहां, Ubuntu 14.04) YouTube: क्या आपने इसे बंद करने और फिर से चालू करने की कोशिश की है?


वाह, हाँ यह मेरे लिए काम किया!
टिम

0

मेरा थिंकपैड T520 के साथ भी यही मुद्दा था। इंटरनेट पर पाए गए सभी समाधानों की कोशिश करने के बाद, मैं उबंटू को फिर से स्थापित करने के लिए तैयार था। लेकिन फिर मैंने विंडोज में सीपीयू आवृत्ति की जांच की है और इसे 800 मेगाहर्ट्ज तक सीमित पाया है।

तो यह हार्डवेयर की समस्या के रूप में देखा गया। यह स्पष्ट नहीं था कि सीपीयू शीतलन के मुद्दे हैं, क्योंकि कूलर आरपीएम कम थे और लैपटॉप का मामला गर्म या गर्म भी नहीं था।

चूँकि और कोई विकल्प नहीं थे, इसलिए मैंने लैपटॉप को नष्ट कर दिया है और सीपीयू और जीपीयू चिप्स में थर्मल इंटरफ़ेस ग्रेसी को बदल दिया है। और क्या आपको पता है? यह मदद करता है!

मेरे Django परियोजनाओं के निष्पादन समय में से एक पर यूनिट-परीक्षण 45 मिनट था, अब यह 11 मिनट है।

इसलिए, यदि आप समान मुद्दे का सामना करेंगे, विशेष रूप से लैपटॉप पर - शायद यह इसलिए है क्योंकि सूखे स्टॉक थर्मल इंटरफ़ेस - 3-5 वर्षों के बाद अक्सर यह काम करना बंद कर देता है। और क्लीन रेडिएटर, साइलेंट कूलर और कूल लैपटॉप बॉडी से मूर्ख मत बनो।


0

समाधान समाधान

# 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; 

0

कभी-कभी यह केवल स्केलिंग गवर्नर स्थापित करने के बारे में नहीं होता है। स्केलिंग नीतियां कभी-कभी MIN_FREQ और MIN_FREQ के बीच सेट की जाती हैं। मुझे एक ही बार में सब कुछ सीधे सेट करने के लिए स्क्रिप्ट लिखनी थी:

#!/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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.