このセクションでは、NUMA (Non-Uniform Memory Architecture) を使用するどの SPARC または x86 システムにも適用できる、汎用的なメモリーチューニング可能パラメータについて説明します。
大規模なメモリーページの割り当てを行う際に、要求されたページサイズがローカルのメモリーグループ内ではすぐに利用できないがリモートメモリーグループからであれば要求を満たせるときにヒューリスティックを制御します。
デフォルトでは、ローカルの空きメモリーは断片化されているが、リモートの空きメモリーは断片化されていない場合に、Oracle Solaris OS はリモート大規模ページを割り当てます。このパラメータを 1 に設定した場合、大規模なメモリーページをローカルで割り当てるため、たとえばローカルのメモリーグループ内で小さなページを集めて大きなページに合体させるといった追加動作が行われます。
ブール型
0 (ローカルの空きメモリーが断片化されていて、リモートの空きメモリーが断片化されていない場合は、リモート割り当てを優先する)
0 (ローカルの空きメモリーが断片化されていて、リモートの空きメモリーが断片化されていない場合は、リモート割り当てを優先する)
1 (ローカルの空きメモリーが断片化されていて、リモートの空きメモリーが断片化されていない場合でも、可能な場合は常にローカル割り当てを優先する)
いいえ
なし
このパラメータを 1 に設定することが考えられるのは、システム上で長時間動作する複数のプログラムが割り当てる傾向にあるメモリーが単一のプログラムによってアクセスされている場合、または複数プログラムのグループによってアクセスされるメモリーが同じ近傍性グループ (lgroup) 内で使用されていることがわかっている場合です。これらの状況では、ページ合体操作の余分なコストをプログラムの長い実行時間にわたって償却することができます。
このパラメータをデフォルト値 (0) のままにすることが考えられるのは、複数のプログラムが異なる近傍性グループにわたってメモリーを共有する傾向にある場合や、ページが短期間だけ使用される傾向にある場合です。このような状況では、特定の場所における割り当てよりも、要求されたサイズをすばやく割り当てることの方がより重要となります。
TLB ミスは、trapstat –T コマンドを使用して監視できます。
不確実
プロセスがユーザープロセッサセット内で実行されている場合は、この変数によって、このプロセスのためにランダムに配置されたメモリーがシステム内のすべての lgroup から選択されるのか、またはプロセッサセット内のプロセッサで構成されている lgroup のみから選択されるのかが決定されます。
プロセッサセットの作成についての詳細は、psrset(1M) のマニュアルページを参照してください。
ブール型
0。Oracle Solaris OS はシステム内のすべての lgroup からメモリーを選択します
0。Oracle Solaris OS はシステム内のすべての lgroup からメモリーを選択します (デフォルト)。
1。プロセッサセット内のプロセッサで構成されている lgroup のみからメモリーを選択しようと試みます。最初の試みが失敗した場合は、任意の lgroup 内のメモリーを割り当てることができます。
いいえ
なし
この値を 1 に設定すると、プロセッサセットがほかのアプリケーションからアプリケーションを切り離すために使用されている場合に、再現性のあるパフォーマンスが得られる可能性があります。
不確実