التبديل بين توفير الطاقة وأفضل أداء لوحدة المعالجة المركزية (CPU) في لينكس

اذا تستعمل برنامج يستهلك قوة المعالج، او اذا تلعب الألعاب على اللينكس، ستحتاج ان تحول بين الحفاظ على الطاقة الى افضل اداء. وطبعاً العكس.

عادةً المعالج سوف يكون على وضع الحفاظ على الطاقة تلقائياً، وهو كافي للكثير من الأمور. ولكن هناك اوقات قد تحتاج إلى الحصول على أفضل ما لديه المعالج لتعلب الألعاب بأحسن شكل.

لتغير وضع المعالج، يجب ان تكن الجذز (root) او استعمل sudo، ثم احدى من الحفاظ على الطاقة او الأفضل اداء يجب ان يوضع في ملف الــ /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor.

لنقل نحن نريد ان نحول بين وضع الحفاظ على الطاقة الى وضع افضل اداء سوف نفعل كالآتي:

$ echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

و اذا نريد ان تعد الى وضغ الحفاظ على الطاقة، افعل كالآتي:

$ echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

لتعلم ماهي حالة المعالج الحالي، اكتب:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

كان ذلك سهلاً ، أليس كذلك؟

ماذا لو كتبنا سكريت BASH ليجعلها اسهل لتغير بين الوضعين؟ ألن يكون ذلك أجمل؟ اجل لذلك انا كتبت السكربت:

#!/bin/bash
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 foldmethod=marker
# ----------------------------------------------------------------------

# usage menu
function show_usage() { #{{{
    echo -e "USAGE:\t$0 powersave|performance|current"
    echo -e "\t\tpowersave\tSet CPU in power-saving mode."
    echo -e "\t\tperformance\tSet CPU in performance mode."
    echo -e "\t\tcurrent\t\tShow the current CPU mode."
    echo -e "\t\thelp\t\tShow this menu."
    exit 1
} #}}}

# our error exit function
function ee() { #{{{
    echo "$1"; exit 1
} #}}}

# get cpu mode
function getcpumode() { #{{{
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
} #}}}

# set cpu mode
function setcpumode() { #{{{
    [ $1 != 'powersave' -a $1 != 'performance' ] && ee 'Invalid given value..'
    [ $(getcpumode) == $1 ] && ee "It's already in '$1' mode"
    echo $1 | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
} #}}}

# make sure we have root's power
if [ $UID -ne 0 ]; then #{{{
    echo 'Script should be executed by "root"'
    ee 'Or prefixed with "sudo".'
fi #}}}

# get & set actions
case "$1" in #{{{
    performance)    setcpumode performance; exit 0      ;;
    powersave)      setcpumode powersave; exit 0        ;;
    current|get)    getcpumode; exit 0                  ;;
    help)           show_usage                          ;;
    *)              ee "Try: $0 help"                   ;;
esac #}}}

لإستعمالها فقط انسخها الى /usr/local/sbin/cpumode. و لا تنسى ان تكن الجذر او استعمال الأوامر مع امر sudo. او انسخها من مخزونة الــ GitHub.

ثم، اذا تريد ان تحول الى وضع افضل اداء، اكتب كالآتي:

$ cpumode performance

ثم، اذا تريد ان تحول الى وضع توفير الطاقة، اكتب كالآتي:

$ cpumode powersave

لتعلم ماهي حالة المعالج الحالي، اكتب:

$ cpumode current

اذا نسيت اكتب:

$ cpumode help

هذا كل شئ استمتع 🙂

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.