主頁 > 知識庫 > Linux動態(tài)啟用/禁用超線程技術(shù)的方法詳解

Linux動態(tài)啟用/禁用超線程技術(shù)的方法詳解

熱門標簽:貴港市機器人外呼系統(tǒng)團隊 咸陽穩(wěn)定外呼系統(tǒng)公司 ec外呼系統(tǒng)怎么樣 貴陽語音電銷機器人 蕪湖呼叫中心外呼系統(tǒng)哪家強 電銷機器人怎么錄音 天津外呼系統(tǒng)運營商 征服者快捷酒店地圖標注 漯河電銷外呼系統(tǒng)價格

前言

intel的超線程技術(shù)能讓一個物理核上并行執(zhí)行兩個線程,大多數(shù)情況下能提高硬件資源的利用率,增強系統(tǒng)性能。對于cpu密集型的數(shù)值程序,超線程技術(shù)可能會導(dǎo)致整體程序性能下降。鑒于此,執(zhí)行OpenMP或者MPI數(shù)值程序時建議關(guān)閉超線程技術(shù)。

以下是github上找到的動態(tài)打開、關(guān)閉超線程技術(shù)的腳本。其原理是根據(jù)/sys/devices/system/cpu/cpuX/topology/thread_siblings_list文件找到邏輯核的關(guān)系,然后編輯/sys/devices/system/cpu/cpuX/online文件實現(xiàn)動態(tài)開啟和關(guān)閉超線程技術(shù)。

#!/bin/bash

HYPERTHREADING=1

function toggleHyperThreading() {
 for CPU in /sys/devices/system/cpu/cpu[0-9]*; do
   CPUID=`basename $CPU | cut -b4-`
   echo -en "CPU: $CPUID\t"
   [ -e $CPU/online ] && echo "1" > $CPU/online
   THREAD1=`cat $CPU/topology/thread_siblings_list | cut -f1 -d,`
   if [ $CPUID = $THREAD1 ]; then
     echo "-> enable"
     [ -e $CPU/online ] && echo "1" > $CPU/online
   else
    if [ "$HYPERTHREADING" -eq "0" ]; then echo "-> disabled"; else echo "-> enabled"; fi
     echo "$HYPERTHREADING" > $CPU/online
   fi
 done
}

function enabled() {
    echo -en "Enabling HyperThreading\n"
    HYPERTHREADING=1
    toggleHyperThreading
}

function disabled() {
    echo -en "Disabling HyperThreading\n"
    HYPERTHREADING=0
    toggleHyperThreading
}

#
ONLINE=$(cat /sys/devices/system/cpu/online)
OFFLINE=$(cat /sys/devices/system/cpu/offline)
echo "---------------------------------------------------"
echo -en "CPU's online: $ONLINE\t CPU's offline: $OFFLINE\n"
echo "---------------------------------------------------"
while true; do
  read -p "Type in e to enable or d disable hyperThreading or q to quit [e/d/q] ?" ed
  case $ed in
    [Ee]* ) enabled; break;;
    [Dd]* ) disabled;exit;;
    [Qq]* ) exit;;
    * ) echo "Please answer e for enable or d for disable hyperThreading.";;
  esac
done

備注:

  1. 腳本需root權(quán)限執(zhí)行;
  2. 可以通過cat /proc/cpuinfo查看啟用的cpu信息,該命令無需root權(quán)限;
  3. lscpu命令可查看cpu的狀態(tài)(無需root權(quán)限):超線程狀態(tài)下threads per core數(shù)值為2,禁用時為1.

參考

Disable / Enable HyperThreading cores on runtime – linux

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

標簽:西寧 怒江 攀枝花 淮北 東營 濰坊 西藏 香港

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Linux動態(tài)啟用/禁用超線程技術(shù)的方法詳解》,本文關(guān)鍵詞  Linux,動態(tài),啟用,禁用,超,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux動態(tài)啟用/禁用超線程技術(shù)的方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux動態(tài)啟用/禁用超線程技術(shù)的方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章