GNU/Linux >> Linux の 問題 >  >> Linux

ハイパースレッディングが有効かどうかを確認していますか?

私は常に以下を使用し、「コアあたりのスレッド:」を見てきました。

hostname:~ # lscpu
Architecture:          x86_64
CPU(s):                24
Thread(s) per core:    2                <-- here
Core(s) per socket:    6
CPU socket(s):         2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               1596.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K

ただし、単純なコマンドで論理プロセッサの電源がオフになっている場合、この手法は失敗することに注意してください

echo 0 > /sys/devices/system/cpu/cpuX/online

2014 年 7 月 8 日に追加されたメモ: Riccardo Murri が指摘したように、以下の私の回答は、プロセッサがハイパースレッディングをサポートしていると報告されているかどうかのみを示しています。通常、*nix O/S は、サポートされている場合、ハイパースレッディングを有効にするように構成されています。ただし、これを実際にプログラムで確認するには、たとえば Nils の回答を参照してください!

---- 2012 年 3 月 25 日の元の回答:

あなたは確かに正しい軌道に乗っています:)

dmidecode -t processor | grep HTT

Linux では、通常、/proc/cpuinfo の「flags」行で「ht」を探すだけです。 .例を参照してください

grep '^flags\b' /proc/cpuinfo | tail -1

または、パターンに「ht」を含めたい場合

grep -o '^flags\b.*: .*\bht\b' /proc/cpuinfo | tail -1

(\b 単語の境界に一致し、「ht」が別のフラグの一部である場合の誤検知を回避するのに役立ちます。)


論理プロセッサの数が HT のコア数の 2 倍の場合、次のスクリプトを使用して /proc/cpuinfo をデコードします。 :

#!/bin/sh
CPUFILE=/proc/cpuinfo
test -f $CPUFILE || exit 1
NUMPHY=`grep "physical id" $CPUFILE | sort -u | wc -l`
NUMLOG=`grep "processor" $CPUFILE | wc -l`
if [ $NUMPHY -eq 1 ]
  then
    echo This system has one physical CPU,
  else
    echo This system has $NUMPHY physical CPUs,
fi
if [ $NUMLOG -gt 1 ]
  then
    echo and $NUMLOG logical CPUs.
    NUMCORE=`grep "core id" $CPUFILE | sort -u | wc -l`
    if [ $NUMCORE -gt 1 ]
      then
        echo For every physical CPU there are $NUMCORE cores.
    fi
  else
    echo and one logical CPU.
fi
echo -n The CPU is a `grep "model name" $CPUFILE | sort -u | cut -d : -f 2-`
echo " with`grep "cache size" $CPUFILE | sort -u | cut -d : -f 2-` cache"

Linux
  1. id:コマンドが見つかりません

  2. w:コマンドが見つかりません

  3. df:コマンドが見つかりません

  1. du:コマンドが見つかりません

  2. rm:コマンドが見つかりません

  3. mv:コマンドが見つかりません

  1. なぜCdはプログラムではないのですか?

  2. set -e オプションが有効かどうかはどうすればわかりますか?

  3. KVM ゲストが必要とするとき、ホスト CPU は周波数をスケーリングしません