numatop - メモリーアクセス近傍性の特徴付けと分析を行うためのツール
numatop [-s sampling_precision ] [-l log_level] [-f log_file] [-d dump_file] [-h]
最新のシステムでは、マルチプロセッシングに非ユニフォームメモリーアクセス (NUMA) 設計が使用されます。NUMA システムでは、メモリーの一部を特定のプロセッサに近づけ、その他の部分を遠ざけるような方法でメモリーとプロセッサを構成します。プロセッサは、遠いメモリーより近いメモリーに高速にアクセスできます。したがって NUMA マシンでは、プロセッサとメモリーの間の待機時間がメモリーの部分によって大幅に異なります。
numatop は、NUMA システム上で実行されているプロセスおよびスレッドの実行時メモリー近傍性の特徴付けと分析を行うための観察ツールです。ユーザーがプロセスおよびスレッドの NUMA 動作を特徴付け、NUMA に関連するパフォーマンスボトルネックの存在箇所を特定するのに役立ちます。このツールの用途:
すべての実行中プロセスおよびスレッドの近傍性を特徴付け、システムでもっとも近傍性が低いプロセスおよびスレッドを特定します。
「ホットな」メモリー領域を特定し、メモリーアクセスの平均待機時間を報告し、アクセスされたメモリーが割り当てられている場所を示します。「ホットな」メモリー領域は、プロセス/スレッドのアクセスがもっとも頻繁な領域です。numatop には、メモリーアクセスの何パーセントが各メモリー領域に帰属するかを示す ACCESS% というメトリックが用意されています。
プロセス/スレッドが特定のカウンタイベント (リモートメモリーアクセス (RMA)、ローカルメモリーアクセス (LMA)、リタイア命令 (IR)、CPU サイクル (CYCLE) など) を生成した場合に、呼び出しチェーンを示します。呼び出しチェーンは、ユーザーがイベントを生成したソースコードを特定するのに役立ちます。
メモリーおよび CPU 使用率に関するノード単位の統計情報を示します。ノードは、すべてのバイトが各 CPU から同じ距離にあるメモリーの領域です。
ユーザーにわかりやすいインタフェースを使用して、あるメトリック (デフォルトでは CPU 使用率) でソートしたプロセス/スレッドのリストを表示します。いちばん上のプロセスは CPU 使用率がシステム内で最大であり、いちばん下のプロセスは CPU 使用率が最小です。ユーザーは、ホットキーを使用して RMA、LMA、RMA/LMA、命令あたりの CPU サイクル (CPI)、CPU 使用率 (CPU%) などのメトリックで出力を再ソートすることもできます。
numatop は、プロセスとスレッドの NUMA アクティビティーを定期的に追跡して分析し、有用なメトリックを表示する GUI ツールです。ユーザーは、上/下キーを使用して上下にスクロールすることで、現在のウィンドウ内を移動できます。また、ウィンドウの下部に表示されるいくつかのホットキーを使用して、ウィンドウを切り替えたり、ツールの実行状態を変更したりできます。たとえば、ホットキー R は現在のウィンドウ内のデータをリフレッシュします。
このツールは、Intel Westmere-EX および Sandy Bridge-EP プラットフォームをサポートしています。
numatop によって表示される各種の表示ウィンドウとデータ項目の詳細な説明を次に示します。
すべてのプロセスの近傍性の特徴を取得します。これは、起動時に最初に表示されるウィンドウであり、numatop のホームウィンドウです。このウィンドウには、プロセスのリストが表示されます。いちばん上のプロセスは CPU 使用率 (CPU%) がシステムで最大であり、いちばん下のプロセスは CPU% が最小です。一般に、メモリーを大量に使用するプロセスは CPU も大量に使用するため、WIN1 に表示されるプロセスはデフォルトで CPU% でソートされます。ユーザーはホットキー 1、2、3、4、または 5 を使用して、それぞれ RMA、LMA、RMA/LMA、CPI、または CPU% で出力を再ソートできます。
[KEY METRICS]: RMA(K): number of Remote Memory Access (unit is 1000). RMA(K) = RMA / 1000 LMA(K): number of Local Memory Access (unit is 1000). LMA(K) = LMA / 1000 RMA/LMA: ratio of RMA / LMA. CPI: CPU cycles per instruction. CPU%: System CPU utilization (busy time across all CPUs). [HOTKEY]: 'Q': Quit the application. 'H': WIN1 refresh. 'R': Refresh to show the latest data. 'I': Show the normalized data. 'N': Show the per-node statistics <Enter>: Switch to WIN3 for the selected process. '1': Sort by 'RMA'. '2': Sort by 'LMA'. '3': Sort by 'RMA/LMA'. '4': Sort by 'CPI'. '5': Sort by 'CPU%'
すべてのプロセスの正規化された近傍性の特徴を取得します。
[KEY METRICS]: RPI(K): RMA normalized by 1000 instructions. RPI(K) = RMA / (IR / 1000); LPI(K): LMA normalized by 1000 instructions. LPI(K) = LMA / (IR / 1000); Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'N': Show the per-node statistics. <Enter>: Switch to WIN3 for the selected process. '1': Sort by 'RPI'. '2': Sort by 'LPI'. '3': Sort by 'RMA/LMA'. '4': Sort by 'CPI'. '5': Sort by 'CPU%'
指定されたプロセスのノードアフィニティーに関する近傍性の特徴を取得します。
[KEY METRICS]: NODE: the node ID. CPU%: per-node CPU utilization. Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'N': Show the per-node statistics. 'L': Show the latency information. 'C': Show the call-chain. <Enter>: Switch to WIN4 for the specified process.
指定されたプロセスに含まれるすべてのスレッドの近傍性の特徴を取得します。
[KEY METRICS]: CPU%: per-CPU CPU utilization Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'N': Show the per-node statistics.
指定されたスレッドのノードアフィニティーに関する近傍性の特徴を取得します。
[KEY METRICS]: CPU%: per-CPU CPU utilization. Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'N': Show the per-node statistics. 'L': Show the latency information. 'C': Show the call-chain.
指定されたプロセス/スレッドの関連するアクセス待機時間とともに、メモリー領域の使用状況を取得します。
[KEY METRICS]: ADDR: starting address of the memory area. SIZE: size of memory area (K/M/G bytes) ACCESS%: percentage of memory accesses are to this memory area. LAT(ns): the average latency (nanosecond) of memory accesses. DESC: description of memory area (from /proc/<pid>/maps). [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'D': Show the memory access node distribution. 'M': Recalculate the address mapping. <Enter>: Show break down the memory area into physical memory on node.
プロセス/スレッドから各ノードに対して発生したメモリーアクセスの割合を取得します。
[KEY METRICS]: NODE: the node ID. ACCESS%: percentage of memory accesses are to this node. LAT(ns): the average latency (nanoseconds) of memory accesses to this node. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'M': Recalculate the address mapping.
プロセス/スレッドの関連するアクセス待機時間とともに、メモリー領域をノード上の物理マッピングに分解します。
[KEY METRICS]: NODE: the node ID. Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. 'M': Recalculate the address mapping.
プロセスが RMA、LMA、CYCLE、または IR を生成した場合の呼び出しチェーンを表示します。
[KEY METRICS]: Call-chain list: a list of call-chains. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data. '1': Show the call-chain for RMA '2': Show the call-chain for LMA '3': Show the call-chain for CYCLE '4': Show the call-chain for IR
このシステムのノード単位の基本的な統計情報を表示します。
[KEY METRICS]: LG: node id of this node. MEM.ALL: total physical memory in this node. MEM.FREE: free physical memory in this node. CPU%: per-node CPU utilization Other metrics remain the same [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window (WIN). 'R': Refresh to show the latest data. <Enter>: Show the information of the specified node.
指定されたノードのメモリー使用状況と CPU 使用率を表示します。
CPU: array of logical CPUs which belong to this node. CPU%: per-node CPU utilization Other metrics remain the same. [HOTKEY]: 'Q': Quit the application. 'H': Switch to WIN1. 'B': Back to previous window. 'R': Refresh to show the latest data.
サポートしているオプションは、次のとおりです。
精度とオーバーヘッドのバランスを調整します (デフォルト)
高いサンプリング精度 (高いオーバーヘッド)
低いサンプリング精度 (高負荷のシステムに適する)
ログファイルのログ記録レベルを指定します。有効な値:
None (デフォルト)
Unknown (予約済み)
All
出力を書き込むログファイルを指定します。
画面データが書き込まれるダンプファイルを指定します。
コマンドの使用方法を表示します。
次のコマンドは、サポートされているオプションのデフォルト値でこのツールを起動します。
# numatop使用例 2 高いサンプリング精度での numatop の起動
次のコマンドは、高いサンプリング精度でこのツールを起動します。
# numatop -s high使用例 3 ログファイルの指定
次のコマンドは、ログファイルを /tmp/numatop.log に設定し、すべての警告メッセージをそのファイルにダンプします。
# numatop -l 2 -o /tmp/numatop.log使用例 4 ダンプファイルの指定
次のコマンドは、ダンプファイルを /tmp/dump.log に設定し、すべての画面データをそのファイルにダンプします。
# numatop -d /tmp/dump.log
次の終了ステータスが返されます。
正常終了。
エラーが発生した。
numatop を実行するには、root 特権が必要です。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|