Hirozak Blog

[OS] ハイパー・スレッディング環境下でのCPU使用率の計算方法

ハイパー・スレッディングとは、

Intel社が2001年8月に発表した、マイクロプロセッサの高速化技術。
プロセッサ内のレジスタやパイプライン回路の空き時間を有効利用して、1つのプロセッサをあたかも2つのプロセッサであるかのように見せかける技術。

1つのスレッドが処理を進めている間には、レジスタやパイプラインなどに必ず空き時間が生じる。従来はこうした空き時間は無駄になっていたが、これらのリソースを集めて1つのプロセッサに見せかけることにより、もう1つ別のスレッドの処理を進めるのがHyper-Threadingである。

ハイパースレッディングとは【Hyper-Threading】 – 意味/解説/説明/定義 : IT用語辞典

仮想的に2つのプロセッサが存在することになるので、大量の並列処理などで効果が発揮されるはず。

同じプロセッサ要素(演算器など)を同時に利用できないという制約があるようだが、少なくともハイパー・スレッディングを使用していない場合に比べて120%~200%の性能は期待できると考えて良さそう。

実際に性能検証をされているサイト。
オラクル R&D センター ハイパースレッドはORACLEでどの程度有効なのか

参考になります。

なお、ハイパー・スレッディングを利用した環境では、DB初期化パラメータCPU_COUNTの値は物理プロセッサ数×2で表示されてました。

ちなみに、CPUの数に依存するライセンス数に関しては、ハイパー・スレッディングの有無に関わらず、物理プロセッサ単位で計算するのが通例のようです。
ハイパー・スレッディングCPUのマシンでは「ライセンスは物理プロセッサ単位でカウント」とMSが発表:ITpro

 

プロセッサを支える技術  --果てしなくスピードを追求する世界 (WEB+DB PRESS plus)
Hisa Ando技術評論社 2011-01-06
売り上げランキング : 10529Amazonで詳しく見る

by G-Tools