2016-07-20 4 views
0

私の/ etc/default/grubファイルでは、 "hugepages = N"というN個の巨大なページを明示的に設定しています。 2つのNUMAノードを持つボックスで実行している場合、N/2の巨大なページはノードごとに設定されますか、それらはすべてノード0に移動しますか、または....コマンドラインでノード間でどのように分割されているかを問い合わせる方法もありますか?静的に割り当てられた巨大なページの背後にあるメモリは、どのようにNUMAノードに分散されますか?

答えて

2

NUMAプラットフォームでのhugepages HERE

についてkernel.orgのポストから、カーネルは タスクのNUMAメモリポリシーで指定された許可されたノードのすべてのセットの上に巨大ページ・プール を配布しようとしますnr_hugepagesを変更します。許可されたノードのデフォルト( タスクにデフォルトメモリポリシーがある場合)は、メモリを持つすべてのオンラインノードです。永続的な巨大なページを割り当てるときに、巨大なページに対して利用可能な連続したメモリが不十分な ノードは、 が静かにスキップされます。タスクメモリポリシー、cpusets、およびノー​​ドごとの属性 と永続的な巨大なページの割り当てと解放の相互作用については、以下の説明の を参照してください。

巨大なページ割り当ての成功または失敗は、 割り振り試行時に、システムに存在する物理的に連続したメモリ の量に依存します。カーネルがNUMAシステム内のいくつかのノードである の巨大なページを割り当てることができない場合、 十分な利用可能な連続した メモリを持つ他のノードに余分なページを割り当てようとします。

システム管理者は、ローカルのrc initファイルの1つにこのコマンドを挿入することができます。これにより、物理連続ページ を得る可能性が依然として非常に高い場合に、カーネルは巨大なページを早期に ブートプロセスに割り当てることができます。管理者は、sysctlまたはmeminfoをチェックすることによって実際に割り当てられた巨大なページの数を確認することができます( )。 NUMAシステムでノードごとに 巨大ページの分布を確認するには、次のように使用します。

cat /sys/devices/system/node/node*/meminfo | fgrep Huge 
関連する問題