Ubuntu में इंटेल टर्बो बूस्ट को अक्षम करना


17

मैं उबंटू के लिए नया हूं और टर्बो बूस्ट को निष्क्रिय करना चाहता हूं। मैं के साथ की कोशिश की, cpufreqलेकिन मैं इसे काम करने के लिए नहीं कर सकते। क्या इसे करने का कोई और तरीका है।

विंडोज़ में सीपीयू की गति को 100 से 99 तक बदलना उतना ही आसान था।


आपका सीपीयू मॉडल क्या है?
रॉन

@ रॉन: यह Intel (R) पेंटियम (R) CPU B960 @ 2.20GHz है, जिस पर मुझे चैट करने की जानकारी मिली है। मुझे लगता है कि यह वास्तव में मायने नहीं रखता है, क्या मायने रखता है जो स्केलिंग ड्राइवर का उपयोग किया जा रहा है। वर्तमान में (जो अतीत की तुलना में अलग है) यह प्रोसेसर को समर्थन देने पर Intel_pstate को डिफ़ॉल्ट करेगा।
डग स्माइथीज

दोस्तों, मैंने कोशिश की: sudo cpupower फ्रीक्वेंसी-सेट -g पॉवरसेव और यह कहता है: Setting cpu: 0 Setting cpu: 1 तो बदलने के लिए कौन सा कोर लगाना है? :)
Ivaylo

भले ही आप जिस स्केलिंग ड्राइवर का उपयोग कर रहे हैं, टर्बो सक्षम या वैश्विक सेटिंग नहीं है, एक स्थान सभी सीपीयू को कवर करता है। स्वयं, मैं केवल आदिम कमांड का उपयोग करता हूं, कभी भी उच्च स्तरीय स्तरीय उपकरण जैसे कि cpupower
डग स्माइथीज

जवाबों:


18

टर्बो बूस्ट की वर्तमान स्थिति को पढ़ने के लिए, हमें msr-tools को स्थापित करना होगा

sudo apt-get install msr-tools

यह जानने के लिए कि क्या टर्बो बूस्ट सुविधा अक्षम है, चलाएँ:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

मैं अपने कोर नंबर के साथ बदलें


NOte: यदि आपको निम्न त्रुटि मिलती है:

rdmsr:open: No such file or directory

फिर निम्न कमांड द्वारा "msr" मॉड्यूल लोड करें:

sudo modprobe msr

टर्बो बूस्ट फीचर को डिसेबल करने के लिए, पूरा 0x1a0 MSR रजिस्टर को 0x4000850089 पर सेट कर सकते हैं, यहाँ पर:

wrmsr -pC 0x1a0 0x4000850089

जहाँ C एक विशेष कोर संख्या को संदर्भित करता है

कहां चलकर वे नंबर प्राप्त कर सकते हैं

cat /proc/cpuinfo | grep processor

फिर एक बार जब आप अपनी संख्या जानते हैं तो आपको प्रत्येक कोर के लिए ऊपर कमांड को चलाना होगा। आपके मामले में संख्या 0 और 1 होगी, इसलिए आपको करना होगा

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

समाधान इस ब्लॉग के लिए खड़ा है


से http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html

टर्बो बूस्ट को अक्षम / सक्षम करने के लिए एक स्क्रिप्ट

टर्बो बूस्ट को बंद / चालू करने के लिए निम्न स्क्रिप्ट का उपयोग किया जा सकता है:

#!/bin/bash

if [[ -z $(which rdmsr) ]]; then
    echo "msr-tools is not installed. Run 'sudo apt-get install msr-tools' to install it." >&2
    exit 1
fi

if [[ ! -z $1 && $1 != "enable" && $1 != "disable" ]]; then
    echo "Invalid argument: $1" >&2
    echo ""
    echo "Usage: $(basename $0) [disable|enable]"
    exit 1
fi

cores=$(cat /proc/cpuinfo | grep processor | awk '{print $3}')
for core in $cores; do
    if [[ $1 == "disable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x4000850089
    fi
    if [[ $1 == "enable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x850089
    fi
    state=$(sudo rdmsr -p${core} 0x1a0 -f 38:38)
    if [[ $state -eq 1 ]]; then
        echo "core ${core}: disabled"
    else
        echo "core ${core}: enabled"
    fi
done

इसे एक फ़ाइल में सहेजें turbo-boost.sh

उपयोग: आप उपरोक्त स्क्रिप्ट की प्रतिलिपि बना सकते हैं और इसे टर्बो-बूस्ट नामक फ़ाइल में सहेज सकते हैं, फिर इसे निष्पादन योग्य बना सकते हैं:

sudo chmod +x turbo-boost.sh

फिर आप टर्बो बूस्ट को अक्षम / सक्षम करने के लिए इसका उपयोग कर सकते हैं:

./turbo-boost.sh disable
./turbo-boost.sh enable

टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
मिच

$ rdmsr -pi 0x1a0 -f 38:38मुझे कमांड के साथ उपयोग करने के लिए विकल्पों की एक सूची देता है। उदाहरण: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....क्या उपरोक्त वाक्यविन्यास पुराना है / सामान्य तरीके से लागू नहीं है?
सर हेनिहौ

30

यदि आपका सिस्टम Intel_pstate फ़्रीक्वेंसी स्केलिंग ड्राइवर का उपयोग कर रहा है:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate

तब आप टर्बो सक्षम या अक्षम स्थिति के रूप में पूछताछ कर सकते हैं:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

जहां 0 का मतलब टर्बो सक्षम है और 1 का मतलब है कि यह अक्षम है। और आप इसे उसी स्थान पर (सुडो के रूप में) लिखकर बदल सकते हैं।

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

मुझे कभी भी स्थान या `टी 'वाली चीज़ ठीक से याद नहीं है, इसलिए मैं स्क्रिप्ट को सूडो के रूप में चलाना पसंद करता हूँ:

$ cat set_cpu_turbo_off
#! /bin/bash
echo "1" > /sys/devices/system/cpu/intel_pstate/no_turbo

$ cat set_cpu_turbo_on
#! /bin/bash
echo "0" > /sys/devices/system/cpu/intel_pstate/no_turbo

यदि आपको अनुमतियों की समस्या है, तो प्रयास करेंsudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94

क्या रिबूट के बाद रहने के लिए इसे स्थायी रूप से सेट किया जा सकता है?
एलेक्सी

@ एसेक्स: यदि आप चाहते हैं कि यह स्थायी हो, तो मैं इसके बजाय इसे BIOS में करने का सुझाव दूंगा। अन्यथा set_cpu_turbo_offस्टार्टअप के दौरान चलने के लिए उपरोक्त स्क्रिप्ट बनाएं ।
डग स्माइथीज

1
@ Cirelli94 - यहां तक ​​कि:sudo echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 1 tee: /sys/devices/system/cpu/intel_pstate/no_turbo: Operation not permitted

1
किसी कारण से, यह Ubuntu सर्वर 14. में मेरे लिए कोई प्रभाव नहीं डालता है sudo wrmsr --all 0x1a0 0x4000850089
सूदो

2

आप /sys/devices/system/cpu/cpufreq/boost0 पर मान सेट करने का प्रयास कर सकते हैं ।

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost

1
यह कहता है कि ऐसी कोई फ़ाइल या निर्देशिका नहीं है
Ivaylo

@ क्या मैं इस उत्तर का विस्तार करने की सलाह देता हूं कि यह कैसे किया जाए।
एलिया कगन

2
मैं एलियाह की टिप्पणी से सहमत हूं। यह एक सही उत्तर है यदि आवृत्ति स्केलिंग चालक एसपीआई-सीपीयूफ़्रेक है।
डग स्माइथीज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.