PowerFlex:CPUの概念とトラブルシューティング
Summary: CPUの概念と基本的なトラブルシューティングは、不明の場合や、わかりにくい場合があります。 このKBでは、CPU関連の情報とトラブルシューティング方法について説明します。
Instructions
概念の説明
-
中央処理装置(CPU) - CPUは、コンピューター プログラムの命令を実行するハードウェアです。
コンピューター システムの基本的な算術演算、論理演算、入出力演算を実行します。
通常、プロセッサーまたはソケットとして認識されます。 -
CPUコア - CPUコアは実際のCPU処理コンポーネントです。
スレッドから受け取ったすべてのコマンド シーケンスを処理します。
pCPU (VMware)とも呼ばれます。 -
CPUスレッド - CPUスレッドは、CPUコアの仮想バージョンです。
スレッドは、順序付けされた命令のシーケンスにすぎません。 -
論理コア - 各CPUスレッドは論理コアと直接比較されます。論理コアは、物理コアが同時に実行できる操作の数を測定します。
ハイパースレッディング機能を使用すると、1つの物理コアで2つの操作を実行できるため、2つの論理コアを持つことになります。 -
ハイパースレッディング - CPUが各物理コアをスレッドと呼ばれる仮想コアに分割するプロセスです。
それをサポートするオペレーティング システム(OS)およびBIOSで有効/無効にすることができます。 -
仮想中央処理装置(vCPU) - 各vCPUは、仮想マシン(VM)のOSによって単一の物理CPUコアとして認識されます。
VMに割り当てられている物理コアの一部または共有を表します。
ハイパーバイザーに応じて、各物理コアはVMあたり5〜10個のvCPUをサポートします。
CPU > コア > vCPUの図
物理コアと論理コアlscpu コマンド出力
lscpu | egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:' | tac
出力例:
Socket(s): 2 ← The motherboard has 2 CPU processors/sockets. Core(s) per socket: 8 ← Each CPU socket has 8 physical cores. Hence, it has 16 physical cores in total. Thread(s) per core: 2 ← Each physical CPU core can run 2 threads = Hyper-Threading enabled. CPU(s): 32 ← The computer has 2 × 8 × 2 = 32 logical cores in total.
論理コアの合計インデックス = CPUソケット× ソケットあたりの物理コア数×物理コアあたりのスレッド数
/proc/cpuinfoファイルの出力
echo " "; echo "Model Name: "$(cat /proc/cpuinfo|egrep 'model name'|head -1|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}'); cat /proc/cpuinfo | egrep 'processor|physical id|siblings|core id|cpu cores' | sed "s/^processor/\n&/"
出力例:
すべての出力値は0から始まります。
processor : 0 ← The index number of threads. physical id : 0 ← CPU socket index #0 (the only one if no other physical id's in the full output). siblings : 8 ← The amount of logical cores in the socket. core id : 0 ← CPU core index #0. cpu cores : 4 ← CPU socket index #0 has 4 physical cores.
論理コアの合計数 = 兄弟数×物理IDの総数
PowerFlexのドキュメントとログ
PowerFlexサーバーに関するCPU関連情報を検索するには、次の方法を使用できます。
ライブ システムのみlscpu
echo " ";echo "Model Name: "$(lscpu|egrep 'Model name'|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}');echo " ";lscpu|egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:'|tac
出力例:
Model name: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz Socket(s): 1 Core(s) per socket: 4 Thread(s) per core: 2 CPU(s): 8
ライブ システムとgetInfoDump
/proc/cpuinfo
echo " ";echo "Model Name: "$(cat /proc/cpuinfo|egrep 'model name'|head -1|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}');cat /proc/cpuinfo|egrep 'processor|physical id|siblings|core id|cpu cores'|sed "s/^processor/\n&/"
getInfoDumpの場合は、cpuinfoファイルの場所を変更する必要があります。このファイルは、... \getInfoDump\server\proc_cpuinfo.txtの下にあります。
/proc/cpuinfoファイルは、 lscpu - よりも包括的です。詳細については、このリンクを使用してください。
出力例:
Model Name: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz processor : 0 physical id : 0 siblings : 8 core id : 0 cpu cores : 4 processor : 1 physical id : 0 siblings : 8 core id : 0 cpu cores : 4 processor : 2 physical id : 0 siblings : 8 core id : 1 cpu cores : 4 processor : 3 physical id : 0 siblings : 8 core id : 1 cpu cores : 4 processor : 4 physical id : 0 siblings : 8 core id : 2 cpu cores : 4 processor : 5 physical id : 0 siblings : 8 core id : 2 cpu cores : 4 processor : 6 physical id : 0 siblings : 8 core id : 3 cpu cores : 4 processor : 7 physical id : 0 siblings : 8 core id : 3 cpu cores : 4
PowerFlexのシステム要件と推奨事項については、DellサポートWebサイトの公式ドキュメントを参照してください。
トラブルシューティングのツールとヒント
Linuxtop
このツールは、ユーザー、タスク、CPU負荷、メモリー使用率を読み取ることができます。
top機能を終了するには、キーボードの文字「q」を押します。
いくつかの標準コマンド スイッチ:-i
アイドルプロセス
すべてのアイドル状態のプロセスを非表示にすることで、リストの並べ替えが容易になります。
-n
反復の回数
top機能が終了するまでに生成する最大反復回数(フレーム数)を指定します。
-b
バッチ モード
topをバッチ モードで起動します。topから他のプログラムやファイルに出力を送る場合に便利です。
-n'スイッチ オプションで反復制限を設定するか、強制終了するまで実行されます。
topの実行中には、他にも次のような便利なコマンドがあります。M - タスク リストをメモリー使用率で並べ替えるP - タスク リストをプロセッサー使用率で並べ替えるN - タスクリストをプロセスIDで並べ替えるT - タスク リストを実行時間で並べ替える
mpstat
このツールは、CPUアクティビティーを表示する sysstatと呼ばれるソフトウェア バンドルの一部です。システムは、各プロセッサー(またはプロセッサー コア)の使用状況を表示します。
%usr – % CPU usage at the user level. %nice – % CPU usage for user processes labeled “nice”. %sys – % CPU usage at the system (Linux kernel) level. %iowait – % CPU usage idling waiting on a disk read/write. %irq – % CPU usage handling hardware interrupts. %soft – % CPU usage handing software interrupts. %steal – % CPU usage being forced to wait for a hypervisor handling other virtual processors. %guest – % CPU usage spent running a virtual processor. %idle – % CPU usage on idle time (no processes, and not waiting on a disk read/write).
iostat
平均使用率のコマンド。前回の起動からの平均CPU使用率が表示されます。
sar
このツールは、システム リソースを管理します。
共通のコマンド スイッチ:-u
これはCPUパフォーマンスのみを追跡します。
%user: Percentage of CPU utilization that occurred while executing at the user level (application). %nice: Percentage of CPU utilization that occurred while executing at the user level with nice priority. %system: Percentage of CPU utilization that occurred while executing at the system level (kernel). %iowait: Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request. %idle: Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.
次のコマンドを実行すると、LinuxシステムのCPUユーザー上位10人が表示されます。
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
または
ps -eo pcpu,pid,user,args | sort -r -k1 | less
VMware
仮想化環境、特に一般的に使用されるVMware ESXiでは、システム リソースの使用は階層化されており、場合によっては迅速に分析できないほど包括的です。
ESXiホスト/VMのパフォーマンスの問題のトラブルシューティングのさまざまなコード バージョンについては、VMware KB「Troubleshooting VMware Resources」に従ってください。
UIとCLIはどちらも、CPUやその他のリソースのパフォーマンスのトラブルシューティングに使用できます。
UI:
vCenter Serverは、接続されているすべてのESXiホストとVMから統計データを収集し、設定された間隔でデータを集約、計算、アーカイブします。
データにアクセスするには、vSphere Clientを起動してVMまたはホストを選択し、[Monitor]>[Performance]>[Overview]に移動して、CPU、メモリー、ディスク、ネットワークなどの主要インジケーターの概要を取得します。
[Advanced]に移動し、右上隅にある[View]ドロップダウン メニューを使用して、各インジケーターの詳細を表示します。
CLI:esxtop
このツールは、ユーザー、タスク、CPU負荷、メモリー使用量を読み取ることができます。
ホストSSHセッションにログインし(root権限が必要)、次を入力します。 esxtopが連携しない場合があります。ESXTOPを起動すると、デフォルトでCPUビューが表示されます。
さまざまなesxtopメトリックと画面についてのより包括的な理解については、ESXTOPの説明を参照してください。
注意:VM上の特定のOS/アプリケーションのパフォーマンスについては、OS/アプリケーションごとに、関連するベンダーが提供する関連する手順に従ってください。
いくつかの標準コマンド スイッチ:-l
大規模な環境では、esxtopは収集する必要のあるデータ量と必要な計算のために、CPUの利用率が高くなる可能性があります。
特定のエンティティーをロックし、esxtopが詳細情報を収集しないようにして、必要なCPU消費電力を制限します。
-l'が使用されると、エンティティがロックされるため、esxtop内には表示されません。
-u
このオプションは、サーバーの物理CPU統計情報を抑制し、保存されるデータ量を大幅に節約します。
-n
反復の回数
esxtop機能が終了するまでに生成する最大反復回数(フレーム数)を指定します。
-b
バッチ モード
topをバッチ モードで起動します。topから他のプログラムやファイルに出力を送る場合に便利です。
-b'が使用されると、エンティティがロックされるため、esxtop内には表示されません。また、このモードでは、esxtopは入力を受け付けず、'-n'スイッチ オプションで反復制限を設定するか、強制終了するまで実行されます。
Windows
Windows環境では、CPUとメモリーの使用率が高いことは、必ずしも修正が必要な問題ではありません。使用事例によって異なります。
タスク マネージャーを使用して、リソースの使用率が高いアプリケーション/タスク/サービスを確認できます。
Windowsサーバーはさまざまな用途に使用できるため、複数のサービスを実行することができます。
各種サービスのパフォーマンスの問題をトラブルシューティングするには、Microsoft KB「Windows Server のトラブルシューティング」に従ってください。
PowerShell
コマンドライン シェルとスクリプト言語で構成される、クロスプラットフォームのタスク自動化および設定管理フレームワーク
PowerShellを使用したCPUのトラブルシューティングのより包括的な理解については、記事「PowerShell Problem Solver: Process CPU Utilization」を参照してください。